Curl and libcurl 7.17.2

 Public curl releases:         103
 Command line options:         122
 curl_easy_setopt() options:   147
 Public functions in libcurl:  55
 Public web site mirrors:      42
 Known libcurl bindings:       36
 Contributors:                 597

This release includes the following changes:
 
 o --data-urlencode was added

This release includes the following bugfixes:

 o curl-config --features and --protocols show the correct output when built
   with NSS, and also when SCP, SFTP and libz are not available
 o free problem in the curl tool for users with empty home dir
 o curl.h version 7.17.1 problem when building C++ apps with MSVC
 o SFTP and SCP use persistent connections
 o segfault on bad URL
 o variable wrapping when using absolutely huge send buffer sizes
 o variable wrapping when using debug callback and the HTTP request wasn't sent
   in one go
 o SSL connections with NSS done with the multi-interface
 o setting a share no longer activates cookies
 o Negotiate now works on auth and proxy simultanouesly

This release includes the following known bugs:

 o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html)

Other curl-related news:

 o TclCurl 7.17.1 => http://personal1.iddeo.es/andresgarci/tclcurl/english/
 o Ruby Curl::Multi 0.1 => http://curl-multi.rubyforge.org/ 

New curl mirrors:

 o http://curl.gominet.net/ is new web mirror in Vizcaya, Portugal

This release would not have looked like this without help, code, reports and
advice from friends like these:

 Dan Fandrich, Gisle Vanem, Toby Peterson, Yang Tse, Daniel Black,
 Robin Johnson, Michal Marek, Ates Goral, Andres Garcia, Rob Crittenden,
 Emil Romanus
 
        Thanks! (and sorry if I forgot to mention someone)
