summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicolas.dufresne@gmail.com <nicolas.dufresne@gmail.com@c587cffe-e639-0410-9787-d7902ae8ed56>2012-07-05 19:15:11 +0000
committernicolas.dufresne@gmail.com <nicolas.dufresne@gmail.com@c587cffe-e639-0410-9787-d7902ae8ed56>2012-07-05 19:15:11 +0000
commit03d514ddbb24c067e5e5d23f7bf448b1292542b0 (patch)
treea439e35444b7ce9630929543c550c3802a5edc25
parentb518056aecb64d7ce4097696a82a2b8afbfdcea5 (diff)
downloadlibproxy-03d514ddbb24c067e5e5d23f7bf448b1292542b0.tar.gz
Don't confuse ":" in path with a port divider
git-svn-id: http://libproxy.googlecode.com/svn/trunk@846 c587cffe-e639-0410-9787-d7902ae8ed56
-rw-r--r--libproxy/test/url-test.cpp22
-rw-r--r--libproxy/url.cpp2
2 files changed, 24 insertions, 0 deletions
diff --git a/libproxy/test/url-test.cpp b/libproxy/test/url-test.cpp
index b66ae35..f5ede04 100644
--- a/libproxy/test/url-test.cpp
+++ b/libproxy/test/url-test.cpp
@@ -145,6 +145,28 @@ int main()
"", 80,
"");
+ /* Check windows style URL */
+ try_url ("file:///E:/dir/file.pac", rtv,
+ "file",
+ "", "",
+ "", 0,
+#ifdef WIN32
+ "E:\\dir\\file.pac");
+#else
+ "/E:/dir/file.pac");
+#endif
+
+ /* UNC windows URL */
+ try_url ("file://server/dir/file.pac", rtv,
+ "file",
+ "", "",
+ "server", 0,
+#ifdef WIN32
+ "\\\\server\\dir\\file.pac");
+#else
+ "/dir/file.pac");
+#endif
+
#ifdef WIN32
WSACleanup();
#endif
diff --git a/libproxy/url.cpp b/libproxy/url.cpp
index cd781df..d00adfd 100644
--- a/libproxy/url.cpp
+++ b/libproxy/url.cpp
@@ -212,6 +212,8 @@ url::url(const string &url) throw(parse_error)
host_end = string::npos;
} else {
host_end = hier_part.find(':', host_start);
+ if (path_start < host_end)
+ host_end = path_start;
}
/* If not port, host ends where path starts */