]> granicus.if.org Git - curl/commitdiff
gopher: Do not translate `?' to `%09'
authorLeonardo Taccari <iamleot@gmail.com>
Thu, 23 Aug 2018 21:27:34 +0000 (23:27 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 24 Aug 2018 06:57:49 +0000 (08:57 +0200)
Since GOPHER support was added in curl `?' character was automatically
translated to `%09' (`\t').

However, this behaviour does not seems documented in RFC 4266 and for
search selectors it is documented to directly use `%09' in the URL.
Apart that several gopher servers in the current gopherspace have CGI
support where `?' is used as part of the selector and translating it to
`%09' often leads to surprising results.

Closes #2910

lib/gopher.c
tests/data/test1202

index b7c31b695e4027568eec169b674500370abe65e0..d650499698b0751076f7589a38a796bcf583e30c 100644 (file)
@@ -93,18 +93,11 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done)
   }
   else {
     char *newp;
-    size_t j, i;
 
     /* Otherwise, drop / and the first character (i.e., item type) ... */
     newp = path;
     newp += 2;
 
-    /* ... then turn ? into TAB for search servers, Veronica, etc. ... */
-    j = strlen(newp);
-    for(i = 0; i<j; i++)
-      if(newp[i] == '?')
-        newp[i] = '\x09';
-
     /* ... and finally unescape */
     result = Curl_urldecode(data, newp, 0, &sel, &len, FALSE);
     if(result)
index 37d270acbf167bbe02ebf2d8c1cc37f819dbf494..6c91a774c36b3664cd4cb73edaccb5aadc010818 100644 (file)
@@ -26,7 +26,7 @@ gopher
 Gopher query
  </name>
  <command>
-"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine?query%20succeeded/1202"
+"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine%09query%20succeeded/1202"
 </command>
 </client>