Unverified Commit 8f3c3cd0 authored by Leonardo Taccari's avatar Leonardo Taccari Committed by Daniel Stenberg
Browse files

gopher: Do not translate `?' to `%09'

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
parent 387e85ef
Loading
Loading
Loading
Loading
+0 −7
Original line number Original line Diff line number Diff line
@@ -93,18 +93,11 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done)
  }
  }
  else {
  else {
    char *newp;
    char *newp;
    size_t j, i;


    /* Otherwise, drop / and the first character (i.e., item type) ... */
    /* Otherwise, drop / and the first character (i.e., item type) ... */
    newp = path;
    newp = path;
    newp += 2;
    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 */
    /* ... and finally unescape */
    result = Curl_urldecode(data, newp, 0, &sel, &len, FALSE);
    result = Curl_urldecode(data, newp, 0, &sel, &len, FALSE);
    if(result)
    if(result)
+1 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,7 @@ gopher
Gopher query
Gopher query
 </name>
 </name>
 <command>
 <command>
"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine?query%20succeeded/1202"
"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine%09query%20succeeded/1202"
</command>
</command>
</client>
</client>