Skip to content
Snippets Groups Projects
TODO 3.55 KiB
Newer Older
  • Learn to ignore specific revisions
  •                                   _   _ ____  _     
                                  ___| | | |  _ \| |    
                                 / __| | | | |_) | |    
                                | (__| |_| |  _ <| |___ 
                                 \___|\___/|_| \_\_____|
    
    TODO
    
    
     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...)
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * Make sure the low-level interface works. highlevel.c should basically be
       possible to write using that interface. Document the low-level interface
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * Add asynchronous name resolving, as this enables full timeout support for
       fork() systems.
    
     * Move non-URL related functions that are used by both the lib and the curl
       application to a separate "portability lib".
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * Add support for other languages than C. C++ and perl comes to mind. Python?
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * Improve the -K config file parser (the parameter following the flag should
       be possible to get specified *exactly* as it is done on a shell command
       line).
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
     * 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.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * Authentication: NTLM. It would be cool to support that MS crap called NTLM
       authentication. MS proxies and servers sometime require that. Since that
       protocol is a proprietary one, it involves reverse engineering and network
       sniffing. This should however be a library-based functionality. There are a
       few different efforts "out there" to make open source HTTP clients support
       this and it should be possible to take advantage of other people's hard
       work.
    
    
     * 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.
    
     * 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?
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * IPv6 Awareness and support
    
       Where ever it would fit.  configure 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.
    
     * 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://.