Commit 473003fb authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

URL parser: cut off '#' fragments from URLs (better)

The existing logic only cut off the fragment from the separate 'path'
buffer which is used when sending HTTP to hosts. The buffer that held
the full URL used for proxies were not dealt with. It is now.

Test case 5 was updated to use a fragment on a URL over a proxy.

Bug: http://curl.haxx.se/bug/view.cgi?id=3579813
parent 3f203037
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -3987,8 +3987,16 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
     last part of the URI. We are looking for the first '#' so that we deal
     gracefully with non conformant URI such as http://example.com#foo#bar. */
  fragment = strchr(path, '#');
  if(fragment) {
    *fragment = 0;

    /* we know the path part ended with a fragment, so we know the full URL
       string does too and we need to cut it off from there so it isn't used
       over proxy */
    fragment = strchr(data->change.url, '#');
    if(fragment)
      *fragment = 0;
  }

  /*
   * So if the URL was A://B/C#D,
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ http
HTTP over proxy
 </name>
 <command>
http://%HOSTIP:%HTTPPORT/we/want/that/page/5 -x %HOSTIP:%HTTPPORT
http://%HOSTIP:%HTTPPORT/we/want/that/page/5#5 -x %HOSTIP:%HTTPPORT
</command>
</client>