From 67a83c1b3465c44b249eaa44fdc492952e59b31f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 16 Jan 2006 22:14:37 +0000 Subject: [PATCH] David Shaw finally removed all traces of Gopher and we are now officially not supporting it. It hasn't been functioning for years anyway, so this is just finally stating what already was true. And a cleanup at the same time. --- CHANGES | 4 ++++ RELEASE-NOTES | 4 +++- configure.ac | 19 +------------------ curl-config.in | 3 --- docs/FAQ | 5 ++--- docs/FEATURES | 4 ---- docs/INSTALL | 1 - docs/MANUAL | 10 +--------- docs/curl-config.1 | 8 ++++---- docs/curl.1 | 6 ++---- docs/libcurl/libcurl.m4 | 3 +-- lib/setup.h | 5 ----- lib/url.c | 26 ++------------------------ lib/urldata.h | 3 --- lib/version.c | 3 --- packages/Linux/RPM/curl-ssl.spec.in | 2 +- packages/Linux/RPM/curl.spec.in | 2 +- packages/Win32/cygwin/README | 4 ++-- perl/contrib/checklinks.pl.in | 2 +- tests/README | 2 +- tests/runtests.pl | 2 +- 21 files changed, 27 insertions(+), 91 deletions(-) diff --git a/CHANGES b/CHANGES index 66c1c7f4b..989bb69fb 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,10 @@ Changelog Daniel (16 January 2006) +- David Shaw finally removed all traces of Gopher and we are now officially + not supporting it. It hasn't been functioning for years anyway, so this is + just finally stating what already was true. And a cleanup at the same time. + - Bryan Henderson turned the 'initialized' variable for curl_global_init() into a counter, and thus you can now do multiple curl_global_init() and you are then supposed to do the same amount of calls to curl_global_cleanup(). diff --git a/RELEASE-NOTES b/RELEASE-NOTES index dbb399025..c583961b1 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -11,6 +11,7 @@ Curl and libcurl 7.15.2 This release includes the following changes: + o Gopher is now officially abandoned as a protocol (lib)curl tries to support. o curl_global_init() and curl_global_cleanup() are now using a refcount so that it is now legal to call them multiple times. See updated info for details. @@ -39,6 +40,7 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Dov Murik, Jean Jacques Drouin, Andres Garcia, Yang Tse, Gisle Vanem, Dan - Fandrich, Alexander Lazic, Michael Jahn, Andrew Benham, Bryan Henderson + Fandrich, Alexander Lazic, Michael Jahn, Andrew Benham, Bryan Henderson, + David Shaw Thanks! (and sorry if I forgot to mention someone) diff --git a/configure.ac b/configure.ac index 48a6d6dc6..792afbb1e 100644 --- a/configure.ac +++ b/configure.ac @@ -185,10 +185,8 @@ AC_HELP_STRING([--disable-http],[Disable HTTP support]), no) AC_MSG_RESULT(no) AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP]) - AC_MSG_WARN([disable HTTP disables FTP over proxy and GOPHER too]) - AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable GOPHER]) + AC_MSG_WARN([disable HTTP disables FTP over proxy]) AC_SUBST(CURL_DISABLE_HTTP, [1]) - AC_SUBST(CURL_DISABLE_GOPHER, [1]) ;; *) AC_MSG_RESULT(yes) ;; @@ -210,21 +208,6 @@ AC_HELP_STRING([--disable-ftp],[Disable FTP support]), esac ], AC_MSG_RESULT(yes) ) -AC_MSG_CHECKING([whether to support gopher]) -AC_ARG_ENABLE(gopher, -AC_HELP_STRING([--enable-gopher],[Enable GOPHER support]) -AC_HELP_STRING([--disable-gopher],[Disable GOPHER support]), -[ case "$enableval" in - no) - AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable GOPHER]) - AC_SUBST(CURL_DISABLE_GOPHER, [1]) - ;; - *) AC_MSG_RESULT(yes) - ;; - esac ], - AC_MSG_RESULT(yes) -) AC_MSG_CHECKING([whether to support file]) AC_ARG_ENABLE(file, AC_HELP_STRING([--enable-file],[Enable FILE support]) diff --git a/curl-config.in b/curl-config.in index 2f5187185..8f89049ca 100644 --- a/curl-config.in +++ b/curl-config.in @@ -101,9 +101,6 @@ while test $# -gt 0; do echo "FTPS" fi fi - if test "@CURL_DISABLE_GOPHER@" != "1"; then - echo "GOPHER" - fi if test "@CURL_DISABLE_FILE@" != "1"; then echo "FILE" fi diff --git a/docs/FAQ b/docs/FAQ index 70bcbdc90..e970e657c 100644 --- a/docs/FAQ +++ b/docs/FAQ @@ -114,7 +114,7 @@ FAQ libcurl A free and easy-to-use client-side URL transfer library, supporting FTP, - FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports + FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more! @@ -132,8 +132,7 @@ FAQ A command line tool for getting or sending files using URL syntax. Since curl uses libcurl, it supports a range of common Internet protocols, - currently including HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and - FILE. + currently including HTTP, HTTPS, FTP, FTPS, LDAP, DICT, TELNET and FILE. We pronounce curl and cURL with an initial k sound: [kurl]. diff --git a/docs/FEATURES b/docs/FEATURES index 52f03bc1c..a41c01619 100644 --- a/docs/FEATURES +++ b/docs/FEATURES @@ -109,10 +109,6 @@ LDAP (*2) DICT - extended DICT URL support -GOPHER - - GET - - via http-proxy - FILE - URL support - "uploads" diff --git a/docs/INSTALL b/docs/INSTALL index f719dc34e..b44168051 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -260,7 +260,6 @@ Win32 CURL_DISABLE_TELNET disables TELNET CURL_DISABLE_DICT disables DICT CURL_DISABLE_FILE disables FILE - CURL_DISABLE_GOPHER disables GOPHER If you want to set any of these defines you have the following possibilities: diff --git a/docs/MANUAL b/docs/MANUAL index 86449d7d3..0622696f5 100644 --- a/docs/MANUAL +++ b/docs/MANUAL @@ -23,10 +23,6 @@ SIMPLE USAGE curl ftp://cool.haxx.se/ - Get a gopher document from funet's gopher server: - - curl gopher://gopher.funet.fi - Get the definition of curl from a dictionary: curl dict://dict.org/m:curl @@ -94,10 +90,6 @@ USING PASSWORDS Probably most commonly used with private certificates, as explained below. - GOPHER - - Curl features no password support for gopher. - PROXY Get an ftp file using a proxy named my-proxy that uses port 888: @@ -748,7 +740,7 @@ ENVIRONMENT VARIABLES Curl reads and understands the following environment variables: - http_proxy, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY + http_proxy, HTTPS_PROXY, FTP_PROXY They should be set for protocol-specific proxies. General proxy should be set with diff --git a/docs/curl-config.1 b/docs/curl-config.1 index b44de2a02..8ac77dbe4 100644 --- a/docs/curl-config.1 +++ b/docs/curl-config.1 @@ -53,10 +53,10 @@ in $prefix/lib and its header files are installed in $prefix/include and so on. The prefix is set with "configure --prefix". .IP "--protocols" Lists what particular protocols the installed libcurl was built to support. At -the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, GOPHER, -FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols -will be listed using uppercase and are separated by newlines. There may be -none, one or several protocols in the list. (Added in 7.13.0) +the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE, +TELNET, LDAP, DICT. Do not assume any particular order. The protocols will +be listed using uppercase and are separated by newlines. There may be none, +one or several protocols in the list. (Added in 7.13.0) .IP "--version" Outputs version information about the installed libcurl. .IP "--vernum" diff --git a/docs/curl.1 b/docs/curl.1 index af2e817aa..8269b7b5e 100644 --- a/docs/curl.1 +++ b/docs/curl.1 @@ -30,8 +30,8 @@ curl \- transfer a URL .SH DESCRIPTION .B curl is a tool to transfer data from or to a server, using one of the supported -protocols (HTTP, HTTPS, FTP, FTPS, TFTP, GOPHER, DICT, TELNET, LDAP or -FILE). The command is designed to work without user interaction. +protocols (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP or FILE). +The command is designed to work without user interaction. curl offers a busload of useful tricks like proxy support, user authentication, ftp upload, HTTP post, SSL (https:) connections, cookies, file @@ -1198,8 +1198,6 @@ Sets proxy server to use for HTTP. Sets proxy server to use for HTTPS. .IP "FTP_PROXY [protocol://][:port]" Sets proxy server to use for FTP. -.IP "GOPHER_PROXY [protocol://][:port]" -Sets proxy server to use for GOPHER. .IP "ALL_PROXY [protocol://][:port]" Sets proxy server to use if no protocol-specific proxy is set. .IP "NO_PROXY " diff --git a/docs/libcurl/libcurl.m4 b/docs/libcurl/libcurl.m4 index 882770924..c6fba644e 100644 --- a/docs/libcurl/libcurl.m4 +++ b/docs/libcurl/libcurl.m4 @@ -46,7 +46,6 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG], AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS]) AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP]) AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS]) - AH_TEMPLATE([LIBCURL_PROTOCOL_GOPHER],[Defined if libcurl supports GOPHER]) AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE]) AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET]) AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP]) @@ -188,7 +187,7 @@ x=CURLOPT_VERBOSE; # We don't have --protocols, so just assume that all # protocols are available - _libcurl_protocols="HTTP FTP GOPHER FILE TELNET LDAP DICT" + _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT" if test x$libcurl_feature_SSL = xyes ; then _libcurl_protocols="$_libcurl_protocols HTTPS" diff --git a/lib/setup.h b/lib/setup.h index 26494dcc7..ea8b4691c 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -30,7 +30,6 @@ #define CURL_DISABLE_TELNET #define CURL_DISABLE_DICT #define CURL_DISABLE_FILE -#define CURL_DISABLE_GOPHER #endif /* HTTP_ONLY */ #if !defined(WIN32) && defined(__WIN32__) @@ -357,10 +356,6 @@ typedef int curl_socket_t; #endif #endif -#if defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_GOPHER) -#define CURL_DISABLE_GOPHER -#endif - #ifdef CURLDEBUG #define DEBUGF(x) x #else diff --git a/lib/url.c b/lib/url.c index e012e01af..b8927fbcd 100644 --- a/lib/url.c +++ b/lib/url.c @@ -2485,14 +2485,12 @@ static CURLcode CreateConnection(struct SessionHandle *data, /* Note: if you add a new protocol, please update the list in * lib/version.c too! */ - if(checkprefix("GOPHER.", conn->host.name)) - strcpy(conn->protostr, "gopher"); + if(checkprefix("FTP.", conn->host.name)) + strcpy(conn->protostr, "ftp"); #ifdef USE_SSL else if(checkprefix("FTPS", conn->host.name)) strcpy(conn->protostr, "ftps"); #endif /* USE_SSL */ - else if(checkprefix("FTP.", conn->host.name)) - strcpy(conn->protostr, "ftp"); else if(checkprefix("TELNET.", conn->host.name)) strcpy(conn->protostr, "telnet"); else if (checkprefix("DICT.", conn->host.name)) @@ -2596,7 +2594,6 @@ static CURLcode CreateConnection(struct SessionHandle *data, * http_proxy=http://some.server.dom:port/ * https_proxy=http://some.server.dom:port/ * ftp_proxy=http://some.server.dom:port/ - * gopher_proxy=http://some.server.dom:port/ * no_proxy=domain1.dom,host.domain2.dom * (a comma-separated list of hosts which should * not be proxied, or an asterisk to override @@ -2778,25 +2775,6 @@ static CURLcode CreateConnection(struct SessionHandle *data, " was built with SSL disabled, https: not supported!"); return CURLE_UNSUPPORTED_PROTOCOL; #endif /* !USE_SSL */ - } - else if (strequal(conn->protostr, "GOPHER")) { -#ifndef CURL_DISABLE_GOPHER - conn->port = PORT_GOPHER; - conn->remote_port = PORT_GOPHER; - /* Skip // in path if present */ - if (isdigit((int)conn->path[1])) { - conn->path = strchr(&conn->path[1], '/'); - if (conn->path == NULL) - conn->path = conn->pathbuffer; - } - conn->protocol |= PROT_GOPHER; - conn->curl_do = Curl_http; - conn->curl_do_more = NULL; - conn->curl_done = Curl_http_done; -#else - failf(data, LIBCURL_NAME - " was built with GOPHER disabled, gopher: not supported!"); -#endif } else if(strequal(conn->protostr, "FTP") || strequal(conn->protostr, "FTPS")) { diff --git a/lib/urldata.h b/lib/urldata.h index 0293dd5ad..94889234a 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -30,7 +30,6 @@ #define PORT_FTP 21 #define PORT_FTPS 990 #define PORT_TELNET 23 -#define PORT_GOPHER 70 #define PORT_HTTP 80 #define PORT_HTTPS 443 #define PORT_DICT 2628 @@ -541,7 +540,6 @@ struct connectdata { long protocol; /* PROT_* flags concerning the protocol set */ #define PROT_MISSING (1<<0) -#define PROT_GOPHER (1<<1) #define PROT_HTTP (1<<2) #define PROT_HTTPS (1<<3) #define PROT_FTP (1<<4) @@ -703,7 +701,6 @@ struct connectdata { /* previously this was in the urldata struct */ union { struct HTTP *http; - struct HTTP *gopher; /* alias, just for the sake of being more readable */ struct HTTP *https; /* alias, just for the sake of being more readable */ struct FTP *ftp; void *tftp; /* private for tftp.c-eyes only */ diff --git a/lib/version.c b/lib/version.c index 42bdfd99c..53e2b56ef 100644 --- a/lib/version.c +++ b/lib/version.c @@ -87,9 +87,6 @@ static const char * const protocols[] = { #ifndef CURL_DISABLE_FTP "ftp", #endif -#ifndef CURL_DISABLE_GOPHER - "gopher", -#endif #ifndef CURL_DISABLE_TELNET "telnet", #endif diff --git a/packages/Linux/RPM/curl-ssl.spec.in b/packages/Linux/RPM/curl-ssl.spec.in index 066eb49a7..d953b3960 100644 --- a/packages/Linux/RPM/curl-ssl.spec.in +++ b/packages/Linux/RPM/curl-ssl.spec.in @@ -5,7 +5,7 @@ %define curlroot %{_builddir}/%{tarball}-%{version} -Summary: get a file from a FTP, GOPHER or HTTP server. +Summary: get a file from an FTP or HTTP server. Name: %{name} Version: %{version} Release: %{release} diff --git a/packages/Linux/RPM/curl.spec.in b/packages/Linux/RPM/curl.spec.in index a5e8d2dd7..8b81726b7 100644 --- a/packages/Linux/RPM/curl.spec.in +++ b/packages/Linux/RPM/curl.spec.in @@ -5,7 +5,7 @@ %define builddir $RPM_BUILD_DIR/%{name}-%{version} -Summary: get a file from a FTP, GOPHER or HTTP server. +Summary: get a file from an FTP or HTTP server. Name: %{name} Version: %{version} Release: %{release} diff --git a/packages/Win32/cygwin/README b/packages/Win32/cygwin/README index 67509cac5..313daccbe 100644 --- a/packages/Win32/cygwin/README +++ b/packages/Win32/cygwin/README @@ -1,5 +1,5 @@ Curl is a tool for transferring files with URL syntax, supporting - FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. + FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, @@ -91,7 +91,7 @@ Packaging Instructions: @ curl sdesc: "a client that groks URLs" ldesc: "Curl is a tool for transferring files with URL syntax, - supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE + supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, diff --git a/perl/contrib/checklinks.pl.in b/perl/contrib/checklinks.pl.in index 17032b36a..6be659faa 100644 --- a/perl/contrib/checklinks.pl.in +++ b/perl/contrib/checklinks.pl.in @@ -269,7 +269,7 @@ for(@links) { if($url =~ /^([^:]+):/) { $prot = $1; -# if($prot !~ /(http|ftp|gopher)/i) { +# if($prot !~ /(http|ftp)/i) { if($prot !~ /http/i) { # this is an unsupported protocol, we ignore this next linkloop; diff --git a/tests/README b/tests/README index 1c3d1b7fd..b7fb2c86d 100644 --- a/tests/README +++ b/tests/README @@ -85,4 +85,4 @@ TEST CASE NUMBERS TODO: - * Add tests for TELNET, GOPHER, LDAP, DICT... + * Add tests for TELNET, LDAP, DICT... diff --git a/tests/runtests.pl b/tests/runtests.pl index a982dc712..cb36edda1 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -204,7 +204,7 @@ $SIG{KILL} = \&catch_zap; # to prevent them to interfere with our testing! my $protocol; -foreach $protocol (('ftp', 'http', 'ftps', 'https', 'gopher', 'no')) { +foreach $protocol (('ftp', 'http', 'ftps', 'https', 'no')) { my $proxy = "${protocol}_proxy"; # clear lowercase version $ENV{$proxy}=undef;