| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| TODO |
| |
| For version 7. Stuff I palnned to have included in curl for version |
| seven. Let's do a serious attempt to include most of this. |
| |
| Document the easy-interface completely |
| |
| Make sure the low-level interface works. highlevel.c should basically be |
| possible to write using that interface. |
| |
| Document the low-level interface |
| |
| Add asynchronous name resolving, as this enables full timeout support for |
| fork() systems. |
| |
| Make sure you can set the progress callback |
| |
| Add libtool stuff |
| |
| Move non-URL related functions that are used by both the lib and the curl |
| application to a separate "portability lib". |
| |
| Correct the lib's getenv() call as it is not threadsafe under win32. |
| |
| Add support for other languages than C (not important) |
| |
| |
| For the future |
| |
| |
| Ok, this is what I wanna do with Curl. Please tell me what you think, and |
| please don't hesitate to contribute and send me patches that improve this |
| product! (Yes, you may add things not mentioned here, these are just a |
| few teasers...) |
| |
| * rtsp:// support -- "Real Time Streaming Protocol" |
| |
| RFC 2326 |
| |
| * "Content-Encoding: compress/gzip/zlib" |
| |
| HTTP 1.1 clearly defines how to get and decode compressed documents. There |
| is the zlib that is pretty good at decompressing stuff. This work was |
| started in October 1999 but halted again since it proved more work than we |
| thought. It is still a good idea to implement though. |
| |
| * HTTP Pipelining/persistant connections |
| |
| - We should introduce HTTP "pipelining". Curl could be able to request for |
| several HTTP documents in one connect. It would be the beginning for |
| supporing more advanced functions in the future, like web site |
| mirroring. This will require that the urlget() function supports several |
| documents from a single HTTP server, which it doesn't today. |
| |
| - When curl supports fetching several documents from the same server using |
| pipelining, I'd like to offer that function to the command line. Anyone has |
| a good idea how? The current way of specifying one URL with the output sent |
| to the stdout or a file gets in the way. Imagine a syntax that supports |
| "additional documents from the same server" in a way similar to: |
| |
| curl <main URL> --more-doc <path> --more-doc <path> |
| |
| where --more-doc specifies another document on the same server. Where are |
| the output files gonna be put and how should they be named? Should each |
| "--more-doc" parameter require a local file name to store the result in? |
| Like "--more-file" as in: |
| |
| curl <URL> --more-doc <path> --more-file <file> |
| |
| * RFC2617 compliance, "Digest Access Authentication" |
| A valid test page seem to exist at: |
| http://hopf.math.nwu.edu/testpage/digest/ |
| And some friendly person's server source code is available at |
| http://hopf.math.nwu.edu/digestauth/index.html |
| |
| Then there's the Apache mod_digest source code too of course. It seems as |
| if Netscape doesn't support this, and not many servers do. Although this is |
| a lot better authentication method than the more common "Basic". Basic |
| sends the password in cleartext over the network, this "Digest" method uses |
| a challange-response protocol which increases security quite a lot. |
| |
| * Different FTP Upload Through Web Proxy |
| I don't know any web proxies that allow CONNECT through on port 21, but |
| that would be the best way to do ftp upload. All we would need to do would |
| be to 'CONNECT <host>:<port> HTTP/1.0\r\n\r\n' and then do business as |
| usual. I least I think so. It would be fun if someone tried this... |
| |
| * Multiple Proxies? |
| Is there anyone that actually uses serial-proxies? I mean, send CONNECT to |
| the first proxy to connect to the second proxy to which you send CONNECT to |
| connect to the remote host (or even more iterations). Is there anyone |
| wanting curl to support it? (Not that it would be hard, just confusing...) |
| |
| * Other proxies |
| Ftp-kind proxy, Socks5, whatever kind of proxies are there? |
| |
| * IPv6 Awareness |
| Where ever it would fit. I am not that into v6 yet to fully grasp what we |
| would need to do, but letting the autoconf search for v6-versions of a few |
| functions and then use them instead is of course the first thing to do... |
| RFC 2428 "FTP Extensions for IPv6 and NATs" will be interesting. PORT |
| should be replaced with EPRT for IPv6, and EPSV instead of PASV. |
| |
| * An automatic RPM package maker |
| Please, write me a script that makes it. It'd make my day. |
| |
| * SSL for more protocols, like SSL-FTP... |
| (http://search.ietf.org/internet-drafts/draft-murray-auth-ftp-ssl-05.txt) |
| |
| * HTTP POST resume using Range: |
| |
| * Make curl capable of verifying the server's certificate when connecting |
| with HTTPS://. |
| |