Issues not sorted in any particular order. #[num] refers to bug report
numbers. UNASSIGNED means that no person has publicly stated to work on the
issue.

Fix before releasing 7.11.0
===========================


To get fixed in 7.11.1
======================

1. Introduce a new error code indicating authentication problems (for proxy
   CONNECT error 407 for example). #845941 UNASSIGNED

2. Make the proxy CONNECT headers get passed to the callbacks just like other
   headers are. #845941 UNASSIGNED

4. Multi-threaded OpenSSL usage needs to be addressed (Dirk Manske has stepped
   forward on this)

6. REST fix for servers not behaving well on >2GB requests (some outstanding
   issues, Dave Meyer works on this)

8. Resolve the occational test case 91 failure. This still has no
   resolution. Test case 96 has been added to CVS to try variations of this
   test. (David Byron has done lots of research) UNASSIGNED

9. Modify ares to do 'files bind' order instead of 'bind files' by default
   (not actually part of libcurl) See details by Frank Ticheler posted here:
   http://curl.haxx.se/mail/archive-2003-11/0020.html UNASSIGNED

10. Anton Fedorov's "dumpcert" patch (only mailed to me privately) UNASSIGNED

12. The "PUT and (NTLM/Digest) auth" bug (confusion, awaits feedback) #862835

14. Evaluate/apply Gertjan van Wingerde's SSL patches, UNASSIGNED

16. Tony Blakie's bug report about getting a 302 and Location: back from a
    proxy after a CONNECT request. (correct behavior on this is not certain)
    UNASSIGNED, lack of feedback on this. Subject for dismissal.

18. Modified Accept: header in the default HTTP request (being discussed).
    UNASSIGNED

19. Resolve Giuseppe Attardi's "elusive cache bug" (work required)

20. Directory listing support for file:///dir/ (patch by David Hull)
    http://sourceforge.net/tracker/index.php?func=detail&aid=844036&group_id=976&atid=300976
    This patch needs work to become portable. UNASSIGNED

21. Send QUIT before closing an FTP connection. Joe Halpin has provided an
    initial patch. Some outstanding issues.

23. Peter Sylvester's "Most Significant Common Name" patch. Feedback welcome.
