aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-09-20 21:49:41 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-09-20 21:49:41 +0000
commitec4a16f2e01b0b92e16fc841bc676394f37022f1 (patch)
tree7abb7dfa87e76e05c216a6d0196ed5236c82c8bf
parentca5de26f50ae3c02db92592cd0aec1ff4fcc9785 (diff)
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.
-rw-r--r--CHANGES5
-rw-r--r--RELEASE-NOTES1
-rw-r--r--lib/url.c3
-rw-r--r--tests/data/Makefile.am2
-rw-r--r--tests/data/test27847
-rw-r--r--tests/data/test27947
6 files changed, 103 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 2e6b6cf78..971a52f2f 100644
--- 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
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
diff --git a/lib/url.c b/lib/url.c
index 71a827e7a..20f546900 100644
--- 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)) {
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>