From f3ab5d5500f81b052e215b60fe55dcf88fe6635f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 29 Sep 2008 21:46:04 +0000 Subject: [PATCH] - Daniel Egger provided a patch that allows you to disable proxy support in libcurl to somewhat reduce the size of the binary. Run configure --disable-proxy. --- CHANGES | 5 +++++ RELEASE-NOTES | 3 ++- configure.ac | 16 ++++++++++++++++ lib/ftp.c | 8 +++++--- lib/socks.c | 4 ++++ lib/url.c | 13 +++++++++---- 6 files changed, 41 insertions(+), 8 deletions(-) diff --git a/CHANGES b/CHANGES index 81453482e..c202ed2e2 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,11 @@ Changelog +Daniel Stenberg (29 Sep 2008) +- Daniel Egger provided a patch that allows you to disable proxy support in + libcurl to somewhat reduce the size of the binary. Run configure + --disable-proxy. + Daniel Fandrich (29 Sep 2008) - Moved all signal-based name resolution timeout handling into a single new Curl_resolv_timeout function to reduce coupling. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 7a71b6824..bbf950931 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -13,6 +13,7 @@ This release includes the following changes: o Added CURLOPT_CERTINFO and CURLINFO_CERTINFO o Added CURLOPT_POSTREDIR o Better detect HTTP 1.0 servers and don't do HTTP 1.1 requests on them + o configure --disable-proxy disables proxy This release includes the following bugfixes: @@ -45,6 +46,6 @@ advice from friends like these: Keith Mok, Yang Tse, Daniel Fandrich, Guenter Knauf, Dmitriy Sergeyev, Linus Nielsen Feltzing, Martin Drasar, Stefan Krause, Dmitry Kurochkin, Mike Revi, Andres Garcia, Michael Goffioul, Markus Moeller, Rob Crittenden, - Jamie Lokier, Emanuele Bovisio, Maxim Ivanov, Ian Lynagh + Jamie Lokier, Emanuele Bovisio, Maxim Ivanov, Ian Lynagh, Daniel Egger Thanks! (and sorry if I forgot to mention someone) diff --git a/configure.ac b/configure.ac index 9f724cef7..6e7bbff26 100644 --- a/configure.ac +++ b/configure.ac @@ -509,6 +509,22 @@ AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]), AC_SUBST(CURL_DISABLE_LDAPS, [1]) ) +AC_MSG_CHECKING([whether to support proxiesy]) +AC_ARG_ENABLE(proxy, +AC_HELP_STRING([--enable-proxy],[Enable proxy support]) +AC_HELP_STRING([--disable-proxy],[Disable proxy support]), +[ case "$enableval" in + no) + AC_MSG_RESULT(no) + AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies]) + AC_SUBST(CURL_DISABLE_PROXY, [1]) + ;; + *) AC_MSG_RESULT(yes) + ;; + esac ], + AC_MSG_RESULT(yes) +) + AC_MSG_CHECKING([whether to support dict]) AC_ARG_ENABLE(dict, AC_HELP_STRING([--enable-dict],[Enable DICT support]) diff --git a/lib/ftp.c b/lib/ftp.c index 7f1e51205..1ec4091cb 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -1876,14 +1876,12 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, ftp_pasv_verbose(conn, conninfo, newhost, connectport); switch(data->set.proxytype) { +#ifndef CURL_DISABLE_PROXY case CURLPROXY_SOCKS5: case CURLPROXY_SOCKS5_HOSTNAME: result = Curl_SOCKS5(conn->proxyuser, conn->proxypasswd, newhost, newport, SECONDARYSOCKET, conn); break; - case CURLPROXY_HTTP: - /* do nothing here. handled later. */ - break; case CURLPROXY_SOCKS4: result = Curl_SOCKS4(conn->proxyuser, newhost, newport, SECONDARYSOCKET, conn, FALSE); @@ -1892,6 +1890,10 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, result = Curl_SOCKS4(conn->proxyuser, newhost, newport, SECONDARYSOCKET, conn, TRUE); break; +#endif /* CURL_DISABLE_PROXY */ + case CURLPROXY_HTTP: + /* do nothing here. handled later. */ + break; default: failf(data, "unknown proxytype option given"); result = CURLE_COULDNT_CONNECT; diff --git a/lib/socks.c b/lib/socks.c index 9bbb0a7f4..693573209 100644 --- a/lib/socks.c +++ b/lib/socks.c @@ -23,6 +23,7 @@ #include "setup.h" +#ifndef CURL_DISABLE_PROXY #include #ifdef NEED_MALLOC_H @@ -686,3 +687,6 @@ CURLcode Curl_SOCKS5(const char *proxy_name, Curl_nonblock(sock, TRUE); return CURLE_OK; /* Proxy was successful! */ } + +#endif /* CURL_DISABLE_PROXY */ + diff --git a/lib/url.c b/lib/url.c index df3e3cafc..51bfbf6a7 100644 --- a/lib/url.c +++ b/lib/url.c @@ -2666,17 +2666,14 @@ static CURLcode ConnectPlease(struct SessionHandle *data, result = Curl_store_ip_addr(conn); if(CURLE_OK == result) { - switch(data->set.proxytype) { +#ifndef CURL_DISABLE_PROXY case CURLPROXY_SOCKS5: case CURLPROXY_SOCKS5_HOSTNAME: result = Curl_SOCKS5(conn->proxyuser, conn->proxypasswd, conn->host.name, conn->remote_port, FIRSTSOCKET, conn); break; - case CURLPROXY_HTTP: - /* do nothing here. handled later. */ - break; case CURLPROXY_SOCKS4: result = Curl_SOCKS4(conn->proxyuser, conn->host.name, conn->remote_port, FIRSTSOCKET, conn, FALSE); @@ -2685,6 +2682,10 @@ static CURLcode ConnectPlease(struct SessionHandle *data, result = Curl_SOCKS4(conn->proxyuser, conn->host.name, conn->remote_port, FIRSTSOCKET, conn, TRUE); break; +#endif /* CURL_DISABLE_PROXY */ + case CURLPROXY_HTTP: + /* do nothing here. handled later. */ + break; default: failf(data, "unknown proxytype option given"); result = CURLE_COULDNT_CONNECT; @@ -3237,6 +3238,7 @@ static CURLcode setup_connection_internals(struct SessionHandle *data, return CURLE_UNSUPPORTED_PROTOCOL; } +#ifndef CURL_DISABLE_PROXY /**************************************************************** * Detect what (if any) proxy to use. Remember that this selects a host * name and is not limited to HTTP proxies only. @@ -3513,6 +3515,7 @@ static CURLcode parse_proxy_auth(struct SessionHandle *data, return CURLE_OK; } +#endif /* CURL_DISABLE_PROXY */ /* * @@ -4040,6 +4043,7 @@ static CURLcode create_conn(struct SessionHandle *data, return result; } +#ifndef CURL_DISABLE_PROXY /************************************************************* * Extract the user and password from the authentication string *************************************************************/ @@ -4068,6 +4072,7 @@ static CURLcode create_conn(struct SessionHandle *data, proxy = NULL; } /* proxy must be freed later unless NULL */ +#endif /* CURL_DISABLE_PROXY */ /************************************************************* * No protocol part in URL was used, add it!