Armel Asselin fixed problems when you gave a proxy URL with user name and
authorDaniel Stenberg <daniel@haxx.se>
Wed, 20 Sep 2006 21:49:41 +0000 (21:49 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 20 Sep 2006 21:49:41 +0000 (21:49 +0000)
empty password or no password at all. Test case 278 and 279 were added to
verify.

CHANGES
RELEASE-NOTES
lib/url.c
tests/data/Makefile.am
tests/data/test278 [new file with mode: 0644]
tests/data/test279 [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index 2e6b6cf..971a52f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+Daniel (20 September 2006)
+- Armel Asselin fixed problems when you gave a proxy URL with user name and
+  empty password or no password at all. Test case 278 and 279 were added to
+  verify.
+
 Daniel (12 September 2006)
 - Added docs/examples/10-at-a-time.c by Michael Wallner
 
index cebb6b6..19c9940 100644 (file)
@@ -21,6 +21,7 @@ This release includes the following changes:
 
 This release includes the following bugfixes:
 
+ o proxy URL with user name and empty password or no password at all now work
  o fixed a socket state problem with *multi_socket()
  o (HTTP) NTLM hostname fix
  o getsockname usage fixes
index 71a827e..20f5469 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -3698,8 +3698,9 @@ static CURLcode CreateConnection(struct SessionHandle *data,
     if(atsign) {
       char proxyuser[MAX_CURL_USER_LENGTH];
       char proxypasswd[MAX_CURL_PASSWORD_LENGTH];
+      proxypasswd[0] = 0;
 
-      if(2 == sscanf(proxyptr,
+      if(1 <= sscanf(proxyptr,
                      "%" MAX_CURL_USER_LENGTH_TXT"[^:]:"
                      "%" MAX_CURL_PASSWORD_LENGTH_TXT "[^@]",
                      proxyuser, proxypasswd)) {
index 64218ba..9a397e1 100644 (file)
@@ -35,5 +35,5 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46           \
  test256 test257 test258 test259 test260 test261 test262 test263 test264   \
  test265 test266 test267 test268 test269 test270 test271 test272 test273   \
  test274 test275 test524 test525 test276 test277 test526 test527 test528   \
- test530 DISABLED
+ test530 DISABLED test278 test279
 
diff --git a/tests/data/test278 b/tests/data/test278
new file mode 100644 (file)
index 0000000..77e8045
--- /dev/null
@@ -0,0 +1,47 @@
+<info>\r
+<keywords>\r
+HTTP\r
+HTTP GET\r
+HTTP proxy\r
+HTTP proxy Basic auth\r
+</keywords>\r
+</info>\r
+# Server-side\r
+<reply>\r
+<data>\r
+HTTP/1.1 200 OK swsclose\r
+Date: Thu, 09 Nov 2010 14:49:00 GMT\r
+Content-Type: text/html\r
+\r
+the content would go here\r
+</data>\r
+</reply>\r
+\r
+# Client-side\r
+<client>\r
+<server>\r
+http\r
+</server>\r
+ <name>\r
+HTTP with proxy string including http:// and user+empty password\r
+ </name>\r
+ <command>\r
+http://we.want.that.site.com/278 -x http://f%61ke:@%HOSTIP:%HTTPPORT\r
+</command>\r
+</client>\r
+\r
+# Verify data after the test has been "shot"\r
+<verify>\r
+<strip>\r
+^User-Agent:.*\r
+</strip>\r
+<protocol>\r
+GET http://we.want.that.site.com/278 HTTP/1.1\r
+Proxy-Authorization: Basic ZmFrZTo=\r
+Host: we.want.that.site.com\r
+Pragma: no-cache\r
+Accept: */*\r
+Proxy-Connection: Keep-Alive\r
+\r
+</protocol>\r
+</verify>\r
diff --git a/tests/data/test279 b/tests/data/test279
new file mode 100644 (file)
index 0000000..716a99e
--- /dev/null
@@ -0,0 +1,47 @@
+<info>\r
+<keywords>\r
+HTTP\r
+HTTP GET\r
+HTTP proxy\r
+HTTP proxy Basic auth\r
+</keywords>\r
+</info>\r
+# Server-side\r
+<reply>\r
+<data>\r
+HTTP/1.1 200 OK swsclose\r
+Date: Thu, 09 Nov 2010 14:49:00 GMT\r
+Content-Type: text/html\r
+\r
+the content would go here\r
+</data>\r
+</reply>\r
+\r
+# Client-side\r
+<client>\r
+<server>\r
+http\r
+</server>\r
+ <name>\r
+HTTP with proxy string including http:// and user only\r
+ </name>\r
+ <command>\r
+http://we.want.that.site.com/279 -x http://f%61ke@%HOSTIP:%HTTPPORT\r
+</command>\r
+</client>\r
+\r
+# Verify data after the test has been "shot"\r
+<verify>\r
+<strip>\r
+^User-Agent:.*\r
+</strip>\r
+<protocol>\r
+GET http://we.want.that.site.com/279 HTTP/1.1\r
+Proxy-Authorization: Basic ZmFrZUAxMjcuMC4wLjE6ODk5MA0=\r
+Host: we.want.that.site.com\r
+Pragma: no-cache\r
+Accept: */*\r
+Proxy-Connection: Keep-Alive\r
+\r
+</protocol>\r
+</verify>\r