73
72
11.1 SASL based authentication mechanisms
76
12.1 SASL based authentication mechanisms
84
15.1 Other authentication mechanisms
89
16.3 prevent file overwriting
90
16.4 simultaneous parallel transfers
91
16.5 provide formpost headers
92
16.6 url-specific options
93
16.7 warning when setting an option
94
16.8 IPv6 addresses with globbing
101
18.2 nicer lacking perl message
102
18.3 more protocols supported
103
18.4 more platforms supported
106
19.1 http-style HEAD output for ftp
107
19.2 combine error codes
108
19.3 extend CURLOPT_SOCKOPTFUNCTION prototype
110
20. Next major release
111
20.1 cleanup return codes
112
20.2 remove obsolete defines
114
20.4 remove several functions
115
20.5 remove CURLOPT_FAILONERROR
116
20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
117
20.7 remove progress meter from libcurl
118
20.8 remove 'curl_httppost' from public
119
20.9 have form functions use CURL handle argument
120
20.10 Add CURLOPT_MAIL_CLIENT option
80
14.1 Other authentication mechanisms
85
15.3 prevent file overwriting
86
15.4 simultaneous parallel transfers
87
15.5 provide formpost headers
88
15.6 url-specific options
89
15.7 warning when setting an option
90
15.8 IPv6 addresses with globbing
97
17.2 nicer lacking perl message
98
17.3 more protocols supported
99
17.4 more platforms supported
102
18.1 http-style HEAD output for ftp
103
18.2 combine error codes
104
18.3 extend CURLOPT_SOCKOPTFUNCTION prototype
106
19. Next major release
107
19.1 cleanup return codes
108
19.2 remove obsolete defines
110
19.4 remove several functions
111
19.5 remove CURLOPT_FAILONERROR
112
19.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
113
19.7 remove progress meter from libcurl
114
19.8 remove 'curl_httppost' from public
115
19.9 have form functions use CURL handle argument
116
19.10 Add CURLOPT_MAIL_CLIENT option
122
118
==============================================================================
194
190
- The "DONE" operation (post transfer protocol-specific actions) for the
195
191
protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task.
197
2.2 Remove easy interface internally
199
Make curl_easy_perform() a wrapper-function that simply creates a multi
200
handle, adds the easy handle to it, runs curl_multi_perform() until the
201
transfer is done, then detach the easy handle, destroy the multi handle and
202
return the easy handle's return code. This will thus make everything
203
internally use and assume the multi interface. The select()-loop should use
206
2.4 Fix HTTP Pipelining for PUT
193
2.2 Fix HTTP Pipelining for PUT
208
195
HTTP Pipelining can be a way to greatly enhance performance for multiple
209
196
serial requests and currently libcurl only supports that for HEAD and GET
402
389
Being able to specify the preferred authentication mechanism in the URL as
407
394
11.1 SASL based authentication mechanisms
409
Curl currently sends usernames and passwords as clear text whilst SASL based
410
authentication mechanisms can be more secure. As such, support should be
411
added to support these authentication mechanisms.
415
12.1 SASL based authentication mechansims
417
396
Currently the LDAP module only supports ldap_simple_bind_s() in order to bind
418
397
to an LDAP server. However, this function sends username and password details
419
398
using the simple authentication mechanism (as clear text). However, it should
420
399
be possible to use ldap_bind_s() instead specifing the security context
421
400
information ourselves.
429
408
There's no RFC for the protocol or an URI/URL format. An implementation
430
409
should most probably use an existing rsync library, such as librsync.
434
15.1 Other authentication mechanisms
436
Add support for gssapi to SMTP and POP3.
413
14.1 Other authentication mechanisms
415
Add support for gssapi to SMTP, POP3 and IMAP.
442
421
"curl --sync http://example.com/feed[1-100].rss" or
443
422
"curl --sync http://example.net/{index,calendar,history}.html"
446
425
remote file is newer than the local file. A Last-Modified HTTP date header
447
426
should also be used to set the mod date on the downloaded file.
451
430
Globbing support for -d and -F, as in 'curl -d "name=foo[0-9]" URL'.
452
431
This is easily scripted though.
454
16.3 prevent file overwriting
433
15.3 prevent file overwriting
456
435
Add an option that prevents cURL from overwriting existing local files. When
457
436
used, and there already is an existing file with the target file name
459
438
existing). So that index.html becomes first index.html.1 and then
460
439
index.html.2 etc.
462
16.4 simultaneous parallel transfers
441
15.4 simultaneous parallel transfers
464
443
The client could be told to use maximum N simultaneous parallel transfers and
465
444
then just make sure that happens. It should of course not make more than one
466
445
connection to the same remote host. This would require the client to use the
467
446
multi interface. http://curl.haxx.se/bug/feature.cgi?id=1558595
469
16.5 provide formpost headers
448
15.5 provide formpost headers
471
450
Extending the capabilities of the multipart formposting. How about leaving
472
451
the ';type=foo' syntax as it is and adding an extra tag (headers) which
480
459
which should overwrite the program reasonable defaults (plain/text,
483
16.6 url-specific options
462
15.6 url-specific options
485
464
Provide a way to make options bound to a specific URL among several on the
486
465
command line. Possibly by letting ':' separate options between URLs,
495
474
The example would do a POST-GET-POST combination on a single command line.
497
16.7 warning when setting an option
476
15.7 warning when setting an option
499
478
Display a warning when libcurl returns an error when setting an option.
500
479
This can be useful to tell when support for a particular feature hasn't been
501
480
compiled into the library.
503
16.8 IPv6 addresses with globbing
482
15.8 IPv6 addresses with globbing
505
484
Currently the command line client needs to get url globbing disabled (with
506
485
-g) for it to support IPv6 numerical addresses. This is a rather silly flaw
507
486
that should be corrected. It probably involves a smarter detection of the
508
487
'[' and ']' letters.
514
493
Consider extending 'roffit' to produce decent ASCII output, and use that
515
instead of (g)nroff when building src/hugehelp.c
494
instead of (g)nroff when building src/tool_hugehelp.c
521
500
Make our own version of stunnel for simple port forwarding to enable HTTPS
522
501
and FTP-SSL tests without the stunnel dependency, and it could allow us to
523
502
provide test tools built with either OpenSSL or GnuTLS
525
18.2 nicer lacking perl message
504
17.2 nicer lacking perl message
527
506
If perl wasn't found by the configure script, don't attempt to run the tests
528
507
but explain something nice why it doesn't.
530
18.3 more protocols supported
509
17.3 more protocols supported
532
511
Extend the test suite to include more protocols. The telnet could just do ftp
533
512
or http operations (for which we have test servers).
535
18.4 more platforms supported
514
17.4 more platforms supported
537
516
Make the test suite work on more platforms. OpenBSD and Mac OS. Remove
538
517
fork()s and it should become even more portable.
542
19.1 http-style HEAD output for ftp
521
18.1 http-style HEAD output for ftp
544
523
#undef CURL_FTP_HTTPSTYLE_HEAD in lib/ftp.c to remove the HTTP-style headers
545
524
from being output in NOBODY requests over ftp
547
19.2 combine error codes
526
18.2 combine error codes
549
528
Combine some of the error codes to remove duplicates. The original
550
529
numbering should not be changed, and the old identifiers would be
570
549
CURLE_TFTP_PERM => CURLE_REMOTE_ACCESS_DENIED
572
19.3 extend CURLOPT_SOCKOPTFUNCTION prototype
551
18.3 extend CURLOPT_SOCKOPTFUNCTION prototype
574
553
The current prototype only provides 'purpose' that tells what the
575
554
connection/socket is for, but not any protocol or similar. It makes it hard
576
555
for applications to differentiate on TCP vs UDP and even HTTP vs FTP and
579
20. Next major release
558
10. Next major release
581
20.1 cleanup return codes
560
19.1 cleanup return codes
583
562
curl_easy_cleanup() returns void, but curl_multi_cleanup() returns a
584
563
CURLMcode. These should be changed to be the same.
586
20.2 remove obsolete defines
565
19.2 remove obsolete defines
588
567
remove obsolete defines from curl/curl.h
592
571
make several functions use size_t instead of int in their APIs
594
20.4 remove several functions
573
19.4 remove several functions
596
575
remove the following functions from the public API:
613
592
curl_multi_socket_all
615
20.5 remove CURLOPT_FAILONERROR
594
19.5 remove CURLOPT_FAILONERROR
617
596
Remove support for CURLOPT_FAILONERROR, it has gotten too kludgy and weird
618
597
internally. Let the app judge success or not for itself.
620
20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
599
19.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
622
601
Remove support for a global DNS cache. Anything global is silly, and we
623
602
already offer the share interface for the same functionality but done
626
20.7 remove progress meter from libcurl
605
19.7 remove progress meter from libcurl
628
607
The internally provided progress meter output doesn't belong in the library.
629
608
Basically no application wants it (apart from curl) but instead applications
633
612
variable types passed to it instead of doubles so that big files work
636
20.8 remove 'curl_httppost' from public
615
19.8 remove 'curl_httppost' from public
638
617
curl_formadd() was made to fill in a public struct, but the fact that the
639
618
struct is public is never really used by application for their own advantage
642
621
Changing them to return a private handle will benefit the implementation and
643
622
allow us much greater freedoms while still maintining a solid API and ABI.
645
20.9 have form functions use CURL handle argument
624
19.9 have form functions use CURL handle argument
647
626
curl_formadd() and curl_formget() both currently have no CURL handle
648
627
argument, but both can use a callback that is set in the easy handle, and
650
629
curl_easy_perform() (or similar) called - which is hard to grasp and a design
653
20.10 Add CURLOPT_MAIL_CLIENT option
632
19.10 Add CURLOPT_MAIL_CLIENT option
655
634
Rather than use the URL to specify the mail client string to present in the
656
635
HELO and EHLO commands, libcurl should support a new CURLOPT specifically for