From b8012ea2510f3339fc3d3a6c29e037885d7c5669 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 7 Nov 2009 21:52:41 +0000 Subject: Joshua Kwan added paragraph 4.18 about file:// URLs on windows etc --- docs/FAQ | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'docs/FAQ') diff --git a/docs/FAQ b/docs/FAQ index 28b0844a4..9e4d1223f 100644 --- a/docs/FAQ +++ b/docs/FAQ @@ -1,4 +1,4 @@ -Updated: Nov 3, 2009 (http://curl.haxx.se/docs/faq.html) +Updated: Nov 7, 2009 (http://curl.haxx.se/docs/faq.html) _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | @@ -73,6 +73,7 @@ FAQ 4.15 FTPS doesn't work 4.16 My HTTP POST or PUT requests are slow! 4.17 Non-functional connect timeouts on Windows + 4.18 file:// URLs containing drive letters (Windows, NetWare) 5. libcurl Issues 5.1 Is libcurl thread-safe? @@ -915,6 +916,33 @@ FAQ anything else. This will make (lib)curl to consider the connection connected and thus the connect timeout won't trigger. + 4.18 file:// URLs containing drive letters (Windows, NetWare) + + When using cURL to try to download a local file, one might use a URL + in this format: + + file://D:/blah.txt + + You'll find that even if D:\blah.txt does exist, cURL returns a 'file + not found' error. + + According to RFC 1738 (http://www.faqs.org/rfcs/rfc1738.html), + file:// URLs must contain a host component, but it is ignored by + most implementations. In the above example, 'D:' is treated as the + host component, and is taken away. Thus, cURL tries to open '/blah.txt'. + If your system is installed to drive C:, that will resolve to 'C:\blah.txt', + and if that doesn't exist you will get the not found error. + + To fix this problem, use file:// URLs with *three* leading slashes: + + file:///D:/blah.txt + + Alternatively, if it makes more sense, specify 'localhost' as the host + component: + + file://localhost/D:/blah.txt + + In either case, cURL should now be looking for the correct file. 5. libcurl Issues -- cgit v1.2.3