aboutsummaryrefslogtreecommitdiff
path: root/lib/socks.c
AgeCommit message (Collapse)Author
2012-09-06SOCKS: truly disable it if CURL_DISABLE_PROXY is definedDaniel Stenberg
Bug: http://curl.haxx.se/bug/view.cgi?id=3561305 Patch by: Marcel Raad
2011-09-05fix bool variables checking and assignmentYang Tse
2011-08-18Curl_SOCKS4: minor code compressionDaniel Stenberg
2011-08-08SOCKS: fix the connect timeoutDaniel Stenberg
The connect timeout logic when using SOCKS was done wrong Bug: http://curl.haxx.se/mail/lib-2011-07/0177.html Reported by: "Spoon Man"
2011-07-26stdio.h, stdlib.h, string.h, stdarg.h and ctype.h inclusion done in setup_once.hYang Tse
2011-06-04Curl_socket_ready: make timeout a 'long'Daniel Stenberg
It was mostly typecasted to int all over the code so switching to long instead all over should be a net gain.
2011-05-26socks: fix unaligned memory accessYang Tse
2011-04-28proxy: allow socks:// prefix in proxy stringDaniel Stenberg
Inspired by a patch from OB.Conseil. Added test case 708 to verify.
2011-04-27source cleanup: unify look, style and indent levelsDaniel Stenberg
By the use of a the new lib/checksrc.pl script that checks that our basic source style rules are followed.
2011-04-25async resolvers: further cleanupsDaniel Stenberg
asyn-ares.c and asyn-thread.c are two separate backends that implement the same (internal) async resolver API for libcurl to use. Backend is specified at build time. The internal resolver API is defined in asyn.h for asynch resolvers.
2011-04-21Fix a couple of spelling errors in lib/Fabian Keil
Found with codespell.
2011-01-04Curl_timeleft: s/conn/data in first argumentDaniel Stenberg
As the function doesn't really use the connectdata struct but only the SessionHanadle struct I modified what argument it wants.
2010-05-31fix compiler warning: enumerated type mixed with another typeYang Tse
2010-05-07sendrecv: split the I/O handling into private handlerHoward Chu
Howard Chu brought the bulk work of this patch that properly moves out the sending and recving of data to the parts of the code that are properly responsible for the various ways of doing so. Daniel Stenberg assisted with polishing a few bits and fixed some minor flaws in the original patch. Another upside of this patch is that we now abuse CURLcodes less with the "magic" -1 return codes and instead use CURLE_AGAIN more consistently.
2010-04-24socks5: please static code analyzerDaniel Stenberg
Make sure we don't call memcpy() if the argument is NULL even though we also passed a zero length then, as the clang analyzer whined and we want to limit warnings (even false positives) when they're this easy to fix. The change of (char) to (unsigned char) will fix long user names and passwords on systems that have the char type signed by default.
2010-04-16SOCKS4: Value stored to 'rc' is never readDaniel Stenberg
2010-04-16SOCKS5: when name resolves fail return immediatelyDaniel Stenberg
This makes the code flow more obvious and reacts on the return code properly, even if the code acted the same way before.
2010-03-24remove the CVSish $Id$ linesDaniel Stenberg
2010-02-04fix printf-style format stringsYang Tse
2010-02-02Fix compiler warning: conditional expression is constantYang Tse
2009-08-29removed obsolete casts.Gunter Knauf
2009-08-29add casts to silent compiler warnings with 64bit systems.Gunter Knauf
2009-07-09- Eric Wong introduced curlx_nonblock() that the curl tool now (re-)uses forDaniel Stenberg
setting a file descriptor non-blocking. Used by the functionality Eric himself brough on June 15th.
2009-04-21Moved potential inclusion of system's malloc.h and memory.h header files toYang Tse
setup_once.h. Inclusion of each header file is based on the definition of NEED_MALLOC_H and NEED_MEMORY_H respectively.
2009-03-15If CURL_DISABLE_PROXY is defined, we must allow socks_sspi.c to callGisle Vanem
Curl_blockread_all(). It is needed in code inside USE_WINDOWS_SSPI.
2009-01-28- Markus Moeller introduced two new options to libcurl:Daniel Stenberg
CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl to do GSS-style authentication with SOCKS5 proxies. The curl tool got the options called --socks5-gssapi-service and --socks5-gssapi-nec to enable these.
2008-09-29- Daniel Egger provided a patch that allows you to disable proxy support inDaniel Stenberg
libcurl to somewhat reduce the size of the binary. Run configure --disable-proxy.
2008-09-22- Made the SOCKS code use the new Curl_read_plain() function to fix the bugDaniel Stenberg
Markus Moeller reported: http://curl.haxx.se/mail/archive-2008-09/0016.html - recv() errors other than those equal to EAGAIN now cause proper CURLE_RECV_ERROR to get returned. This made test case 160 fail so I've now disabled it until we can figure out another way to exercise that logic.
2008-06-20- Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxyDaniel Stenberg
crashed libcurl. This is now addressed by making sure we use "plain send" internally when doing the socks handshake instead of the Curl_write() function which is designed to use the "target" protocol. That's then SCP or SFTP in this case. I also took the opportunity and cleaned up some ssh- related #ifdefs in the code for readability.
2008-02-11Yang Tse pointed out a few remaining quirks from my timeout refactoring fromDaniel Stenberg
Feb 7 that didn't abort properly on timeouts. These are actually old problems but now they should be fixed.
2008-02-07- Refactored a lot of timeout code into a few functions in an attempt to makeDaniel Stenberg
them all use the same (hopefully correct) logic to make it less error-prone and easier to introduce library-wide where it should be used.
2008-01-14fix compiler warningYang Tse
2008-01-13fix compiler warningYang Tse
2008-01-09fix compiler warningYang Tse
2008-01-05Based on further discussion on curl-library, I reverted yesterday's SOCKS5Daniel Stenberg
code to instead introduce support for a new proxy type called CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy instead of IP address and there's thus no longer any need for a new curl_easy_setopt() option. The default SOCKS5 proxy is again back to sending the IP address to the proxy. The new curl command line option for enabling sending host name to a SOCKS5 proxy is now --socks5-hostname.
2008-01-04Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let theDaniel Stenberg
proxy do the host name resolving and only if --socks5ip (or CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and pass on the IP address only to the proxy.
2008-01-02Richard Atterer brought a patch that added support for SOCKS4a proxies, whichDaniel Stenberg
is an inofficial PROXY4 variant that sends the hostname to the proxy instead of the resolved address (which is already supported by SOCKS5). --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can now be set to CURLPROXY_SOCKS4A as well.
2007-11-05removed space after if and while before the parenthesis for better source codeDaniel Stenberg
consistency
2007-08-27Fixed some minor type mismatches and missing consts mainly found by splint.Dan Fandrich
2007-06-05if we read zero bytes from the proxy, the connection is broken and we needDaniel Stenberg
to bail out
2007-04-16- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is aDaniel Stenberg
function that deprecates the curl_multi_socket() function. Using the new function the application tell libcurl what action that was found in the socket that it passes in. This gives a significant performance boost as it allows libcurl to avoid a call to poll()/select() for every call to curl_multi_socket*().
2007-03-30dead code removed, found by the coverity.com scanDaniel Stenberg
2007-03-26Internal function Curl_select() renamed to Curl_socket_ready()Yang Tse
2007-02-21Include some possible dependencies of arpa/inet.hDan Fandrich
2007-02-20Include network byte order conversion macros on Minix.Dan Fandrich
2007-02-20compiler warning fixYang Tse
2007-02-19- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 andDaniel Stenberg
5).
2007-02-06fix for millisecond resolution timeoutsYang Tse
2007-02-05- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MSDaniel Stenberg
and CURLOPT_CONNECTTIMEOUT_MS that, as their names should hint, do the timeouts with millisecond resolution instead. The only restriction to that is the alarm() (sometimes) used to abort name resolves as that uses full seconds. I fixed the FTP response timeout part of the patch. Internally we now count and keep the timeouts in milliseconds but it also means we multiply set timeouts with 1000. The effect of this is that no timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which equals 24.86 days. We probably couldn't before either since the code did *1000 on the timeout values on several places already.
2006-10-27Compiler warning fixYang Tse