Newer
Older
Daniel Stenberg
committed
Things that could be nice to do in the future
Things to do in project cURL. Please tell us what you think, contribute and
Daniel Stenberg
committed
send us patches that improve things!
Be aware that these are things that we could do, or have once been considered
things we could do. If you want to work on any of these areas, please
consider bringing it up for discussions first on the mailing list so that we
all agree it is still a good idea for the project!
All bugs documented in the KNOWN_BUGS document are subject for fixing!
Daniel Stenberg
committed
1. libcurl
1.2 More data sharing
1.3 struct lifreq
Daniel Stenberg
committed
1.4 signal-based resolver timeouts
1.6 Modified buffer size approach
1.7 Detect when called from within callbacks
1.11 minimize dependencies with dynamicly loaded modules
1.12 have form functions use CURL handle argument
1.13 Add CURLOPT_MAIL_CLIENT option
1.14 Typesafe curl_easy_setopt()
1.18 try next proxy if one doesn't work
1.19 Timeout idle connections from the pool
Daniel Stenberg
committed
2. libcurl - multi interface
2.1 More non-blocking
2.2 Better support for same name resolves
2.3 Non-blocking curl_multi_remove_handle()
2.4 Split connect and authentication process
2.5 Edge-triggered sockets should work
Daniel Stenberg
committed
3. Documentation
3.1 Update date and version in man pages
Daniel Stenberg
committed
4. FTP
Daniel Stenberg
committed
4.2 Alter passive/active on failure and retry
4.3 Earlier bad letter detection
4.4 REST for large files
4.7 STAT for LIST without data connection
Daniel Stenberg
committed
5. HTTP
Daniel Stenberg
committed
5.1 Better persistency for HTTP 1.0
5.2 support FF3 sqlite cookie files
5.3 Rearrange request header order
Daniel Stenberg
committed
6. TELNET
6.1 ditch stdin
6.2 ditch telnet-specific select
6.3 feature negotiation debug data
6.4 send data in chunks
Daniel Stenberg
committed
7.2 Enhanced capability support
8.2 Enhanced capability support
9.1 Enhanced capability support
10. LDAP
10.1 SASL based authentication mechanisms
11. SMB
11.1 File listing support
11.2 Honor file timestamps
11.3 Use NTLMv2
12. New protocols
12.1 RSYNC
13. SSL
13.1 Disable specific versions
13.2 Provide mutex locking API
13.3 Evaluate SSL patches
13.4 Cache OpenSSL contexts
13.5 Export session ids
13.6 Provide callback for cert verification
13.7 improve configure --with-ssl
13.8 Support DANE
14. GnuTLS
14.1 SSL engine stuff
14.2 check connection
15. WinSSL/SChannel
15.1 Add support for client certificate authentication
15.2 Add support for custom server certificate validation
15.3 Add support for the --ciphers option
16. SASL
16.1 Other authentication mechanisms
16.2 Add QOP support to GSSAPI authentication
16.3 Support binary messages (i.e.: non-base64)
17. Command line tool
17.1 sync
17.2 glob posts
17.3 prevent file overwriting
17.4 simultaneous parallel transfers
17.5 provide formpost headers
17.6 warning when setting an option
17.7 warning when sending binary output to terminal
17.8 offer color-coded HTTP header output
17.9 Choose the name of file in braces for complex URLs
17.10 improve how curl works in a windows console window
17.12 keep running, read instructions from pipe/socket
17.13 support metalink in http headers
17.14 --fail without --location should treat 3xx as a failure
18. Build
18.1 roffit
19. Test suite
19.1 SSL tunnel
19.2 nicer lacking perl message
19.3 more protocols supported
19.4 more platforms supported
19.5 Add support for concurrent connections
20. Next SONAME bump
20.1 http-style HEAD output for FTP
20.2 combine error codes
20.3 extend CURLOPT_SOCKOPTFUNCTION prototype
21. Next major release
21.1 cleanup return codes
21.2 remove obsolete defines
21.3 size_t
21.4 remove several functions
21.5 remove CURLOPT_FAILONERROR
21.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
21.7 remove progress meter from libcurl
21.8 remove 'curl_httppost' from public
Daniel Stenberg
committed
Daniel Stenberg
committed
==============================================================================
Daniel Stenberg
committed
1. libcurl
Daniel Stenberg
committed
1.2 More data sharing
Daniel Stenberg
committed
curl_share_* functions already exist and work, and they can be extended to
share more. For example, enable sharing of the ares channel and the
connection cache.
Daniel Stenberg
committed
1.3 struct lifreq
Daniel Stenberg
committed
Daniel Stenberg
committed
Use 'struct lifreq' and SIOCGLIFADDR instead of 'struct ifreq' and
SIOCGIFADDR on newer Solaris versions as they claim the latter is obsolete.
To support IPv6 interface addresses for network interfaces properly.
Daniel Stenberg
committed
Daniel Stenberg
committed
1.4 signal-based resolver timeouts
libcurl built without an asynchronous resolver library uses alarm() to time
out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
causes libcurl to continue running within the signal handler. This is
non-portable and could cause problems on some platforms. A discussion on the
problem is available at https://curl.haxx.se/mail/lib-2008-09/0197.html
Also, alarm() provides timeout resolution only to the nearest second. alarm
ought to be replaced by setitimer on systems that support it.
1.5 get rid of PATH_MAX
Having code use and rely on PATH_MAX is not nice:
http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
Currently the SSH based code uses it a bit, but to remove PATH_MAX from there
we need libssh2 to properly tell us when we pass in a too small buffer and
its current API (as of libssh2 1.2.7) doesn't.
1.6 Modified buffer size approach
Loading
Loading full blame…