Commit e9c835ad authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

David Hull made the file: URL parser also accept the somewhat sloppy file

syntax: file:/path. I added test case 203 to verify this.
parent 0701b973
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -7,6 +7,14 @@
                                  Changelog


Daniel (29 October)
- runtests.pl now checks for and use valgrind if present. It will redirect the
  valgrind results in log/valgrind[num] but it currently doesn't scan that
  file for any errors or anything, that is still only made manually.

- David Hull made the file: URL parser also accept the somewhat sloppy file
  syntax: file:/path. I added test case 203 to verify this.

Daniel (28 October)
- Dan C tracked down yet another weird behavior in the glibc gethostbyname_r()
  function for some specific versions (reported on 2.2.5 and 2.1.1), and
+4 −0
Original line number Diff line number Diff line
Curl and libcurl 7.10.8 is out! A bugfix release.

The 77th public curl release. Release number 104 counted from the very
beginning.

This release includes the following changes:

 o file: URLs with only one initial slash now works too
 o we include a RELEASE-NOTES document in the release archive to summarize
   the big and visible changes and bugfixes
 o CURLOPT_MAXFILESIZE was added, and --max-filesize.
+11 −1
Original line number Diff line number Diff line
@@ -2002,9 +2002,19 @@ static CURLcode CreateConnection(struct SessionHandle *data,
   * proxy -- and we don't know if we will need to use SSL until we parse the
   * url ...
   ************************************************************/
  if((2 == sscanf(data->change.url, "%64[^:]://%[^\n]",
  if((2 == sscanf(data->change.url, "%64[^:]:%[^\n]",
                  conn->protostr,
                  conn->path)) && strequal(conn->protostr, "file")) {
    if(conn->path[0] == '/' && conn->path[1] == '/') {
      /* Allow omitted hostname (e.g. file:/<path>).  This is not strictly
       * speaking a valid file: URL by RFC 1738, but treating file:/<path> as
       * file://localhost/<path> is similar to how other schemes treat missing
       * hostnames.  See RFC 1808. */

      /* This cannot be done with strcpy() in a portable manner, since the
         memory areas overlap! */
      memmove(conn->path, conn->path + 2, strlen(conn->path + 2)+1);
    }
    /*
     * we deal with file://<host>/<path> differently since it supports no
     * hostname other than "localhost" and "127.0.0.1", which is unique among
+1 −1
Original line number Diff line number Diff line
@@ -24,4 +24,4 @@ test62 test63 test64 test65 test66 test144 test145 test67 test68 test41 \
test40 test42 test69 test70 test71 test72 test73 test146 test505 \
test74 test75 test76 test77 test78 test147 test148 test506 test79 test80 \
test81 test82 test83 test84 test85 test86 test87 test507 test149 test88 \
test89 test90 test508 test91 test92
test89 test90 test508 test91 test92 test203

tests/data/test203

0 → 100644
+34 −0
Original line number Diff line number Diff line
# Server-side
<reply>
<data>
foo
   bar
bar
   foo
moo
</data>
</reply>

# Client-side
<client>
<server>
none
</server>
 <name>
file:/path URL with a single slash
 </name>
 <command>
file:%PWD/log/test203.txt
</command>
<file name="log/test203.txt">
foo
   bar
bar
   foo
moo
</file>
</test>

# Verify data after the test has been "shot"
<verify>
</verify>