diff options
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | RELEASE-NOTES | 1 | ||||
-rw-r--r-- | lib/url.c | 3 | ||||
-rw-r--r-- | tests/data/Makefile.am | 2 | ||||
-rw-r--r-- | tests/data/test278 | 47 | ||||
-rw-r--r-- | tests/data/test279 | 47 |
6 files changed, 103 insertions, 2 deletions
@@ -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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index cebb6b614..19c994079 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 @@ -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)) { diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 64218bac1..9a397e1b6 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -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 index 000000000..77e80456a --- /dev/null +++ b/tests/data/test278 @@ -0,0 +1,47 @@ +<info>
+<keywords>
+HTTP
+HTTP GET
+HTTP proxy
+HTTP proxy Basic auth
+</keywords>
+</info>
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK swsclose
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Content-Type: text/html
+
+the content would go here
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP with proxy string including http:// and user+empty password
+ </name>
+ <command>
+http://we.want.that.site.com/278 -x http://f%61ke:@%HOSTIP:%HTTPPORT
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET http://we.want.that.site.com/278 HTTP/1.1
+Proxy-Authorization: Basic ZmFrZTo=
+Host: we.want.that.site.com
+Pragma: no-cache
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+</protocol>
+</verify>
diff --git a/tests/data/test279 b/tests/data/test279 new file mode 100644 index 000000000..716a99ea6 --- /dev/null +++ b/tests/data/test279 @@ -0,0 +1,47 @@ +<info>
+<keywords>
+HTTP
+HTTP GET
+HTTP proxy
+HTTP proxy Basic auth
+</keywords>
+</info>
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK swsclose
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Content-Type: text/html
+
+the content would go here
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP with proxy string including http:// and user only
+ </name>
+ <command>
+http://we.want.that.site.com/279 -x http://f%61ke@%HOSTIP:%HTTPPORT
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET http://we.want.that.site.com/279 HTTP/1.1
+Proxy-Authorization: Basic ZmFrZUAxMjcuMC4wLjE6ODk5MA0=
+Host: we.want.that.site.com
+Pragma: no-cache
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+</protocol>
+</verify>
|