Annotation of embedaddon/curl/docs/KNOWN_BUGS, revision 1.1.1.1
1.1 misho 1: _ _ ____ _
2: ___| | | | _ \| |
3: / __| | | | |_) | |
4: | (__| |_| | _ <| |___
5: \___|\___/|_| \_\_____|
6:
7: Known Bugs
8:
9: These are problems and bugs known to exist at the time of this release. Feel
10: free to join in and help us correct one or more of these! Also be sure to
11: check the changelog of the current development status, as one or more of these
12: problems may have been fixed or changed somewhat since this was written!
13:
14: 1. HTTP
15: 1.2 Multiple methods in a single WWW-Authenticate: header
16: 1.3 STARTTRANSFER time is wrong for HTTP POSTs
17: 1.4 multipart formposts file name encoding
18: 1.5 Expect-100 meets 417
19: 1.6 Unnecessary close when 401 received waiting for 100
20: 1.7 Deflate error after all content was received
21: 1.8 DoH isn't used for all name resolves when enabled
22: 1.9 HTTP/2 frames while in the connection pool kill reuse
23: 1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
24:
25: 2. TLS
26: 2.1 CURLINFO_SSL_VERIFYRESULT has limited support
27: 2.2 DER in keychain
28: 2.4 DarwinSSL won't import PKCS#12 client certificates without a password
29: 2.5 Client cert handling with Issuer DN differs between backends
30: 2.6 CURL_GLOBAL_SSL
31: 2.7 Client cert (MTLS) issues with Schannel
32: 2.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname
33: 2.9 TLS session cache doesn't work with TFO
34: 2.10 Store TLS context per transfer instead of per connection
35:
36: 3. Email protocols
37: 3.1 IMAP SEARCH ALL truncated response
38: 3.2 No disconnect command
39: 3.3 POP3 expects "CRLF.CRLF" eob for some single-line responses
40: 3.4 AUTH PLAIN for SMTP is not working on all servers
41:
42: 4. Command line
43: 4.1 -J and -O with %-encoded file names
44: 4.2 -J with -C - fails
45: 4.3 --retry and transfer timeouts
46: 4.4 --upload-file . hang if delay in STDIN
47: 4.5 Improve --data-urlencode space encoding
48:
49: 5. Build and portability issues
50: 5.2 curl-config --libs contains private details
51: 5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
52: 5.4 Cannot compile against a static build of OpenLDAP
53: 5.5 can't handle Unicode arguments in Windows
54: 5.6 cmake support gaps
55: 5.7 Visual Studio project gaps
56: 5.8 configure finding libs in wrong directory
57: 5.9 Utilize Requires.private directives in libcurl.pc
58: 5.10 IDN tests failing on Windows / MSYS2
59: 5.11 configure --with-gssapi with Heimdal is ignored on macOS
60:
61: 6. Authentication
62: 6.1 NTLM authentication and unicode
63: 6.2 MIT Kerberos for Windows build
64: 6.3 NTLM in system context uses wrong name
65: 6.4 Negotiate and Kerberos V5 need a fake user name
66: 6.5 NTLM doesn't support password with § character
67: 6.6 libcurl can fail to try alternatives with --proxy-any
68: 6.7 Don't clear digest for single realm
69:
70: 7. FTP
71: 7.1 FTP without or slow 220 response
72: 7.2 FTP with CONNECT and slow server
73: 7.3 FTP with NOBODY and FAILONERROR
74: 7.4 FTP with ACCT
75: 7.5 ASCII FTP
76: 7.6 FTP with NULs in URL parts
77: 7.7 FTP and empty path parts in the URL
78: 7.8 Premature transfer end but healthy control channel
79: 7.9 Passive transfer tries only one IP address
80: 7.10 FTPS needs session reuse
81:
82: 8. TELNET
83: 8.1 TELNET and time limitations don't work
84: 8.2 Microsoft telnet server
85:
86: 9. SFTP and SCP
87: 9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct
88:
89: 10. SOCKS
90: 10.3 FTPS over SOCKS
91: 10.4 active FTP over a SOCKS
92:
93: 11. Internals
94: 11.1 Curl leaks .onion hostnames in DNS
95: 11.2 error buffer not set if connection to multiple addresses fails
96: 11.3 c-ares deviates from stock resolver on http://1346569778
97: 11.4 HTTP test server 'connection-monitor' problems
98: 11.5 Connection information when using TCP Fast Open
99: 11.6 slow connect to localhost on Windows
100: 11.7 signal-based resolver timeouts
101: 11.8 DoH leaks memory after followlocation
102: 11.9 DoH doesn't inherit all transfer options
103: 11.10 Blocking socket operations in non-blocking API
104:
105: 12. LDAP and OpenLDAP
106: 12.1 OpenLDAP hangs after returning results
107: 12.2 LDAP on Windows does authentication wrong?
108: 12.3 LDAP on Windows doesn't work
109:
110: 13. TCP/IP
111: 13.1 --interface for ipv6 binds to unusable IP address
112:
113: 14 DICT
114: 14.1 DICT responses show the underlying protocol
115:
116: ==============================================================================
117:
118: 1. HTTP
119:
120: 1.2 Multiple methods in a single WWW-Authenticate: header
121:
122: The HTTP responses headers WWW-Authenticate: can provide information about
123: multiple authentication methods as multiple headers or as several methods
124: within a single header. The latter way, several methods in the same physical
125: line, is not supported by libcurl's parser. (For no good reason.)
126:
127: 1.3 STARTTRANSFER time is wrong for HTTP POSTs
128:
129: Wrong STARTTRANSFER timer accounting for POST requests Timer works fine with
130: GET requests, but while using POST the time for CURLINFO_STARTTRANSFER_TIME
131: is wrong. While using POST CURLINFO_STARTTRANSFER_TIME minus
132: CURLINFO_PRETRANSFER_TIME is near to zero every time.
133:
134: https://github.com/curl/curl/issues/218
135: https://curl.haxx.se/bug/view.cgi?id=1213
136:
137: 1.4 multipart formposts file name encoding
138:
139: When creating multipart formposts. The file name part can be encoded with
140: something beyond ascii but currently libcurl will only pass in the verbatim
141: string the app provides. There are several browsers that already do this
142: encoding. The key seems to be the updated draft to RFC2231:
143: https://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02
144:
145: 1.5 Expect-100 meets 417
146:
147: If an upload using Expect: 100-continue receives an HTTP 417 response, it
148: ought to be automatically resent without the Expect:. A workaround is for
149: the client application to redo the transfer after disabling Expect:.
150: https://curl.haxx.se/mail/archive-2008-02/0043.html
151:
152: 1.6 Unnecessary close when 401 received waiting for 100
153:
154: libcurl closes the connection if an HTTP 401 reply is received while it is
155: waiting for the 100-continue response.
156: https://curl.haxx.se/mail/lib-2008-08/0462.html
157:
158: 1.7 Deflate error after all content was received
159:
160: There's a situation where we can get an error in a HTTP response that is
161: compressed, when that error is detected after all the actual body contents
162: have been received and delivered to the application. This is tricky, but is
163: ultimately a broken server.
164:
165: See https://github.com/curl/curl/issues/2719
166:
167: 1.8 DoH isn't used for all name resolves when enabled
168:
169: Even if DoH is specified to be used, there are some name resolves that are
170: done without it. This should be fixed. When the internal function
171: `Curl_resolver_wait_resolv()` is called, it doesn't use DoH to complete the
172: resolve as it otherwise should.
173:
174: See https://github.com/curl/curl/pull/3857 and
175: https://github.com/curl/curl/pull/3850
176:
177: 1.9 HTTP/2 frames while in the connection pool kill reuse
178:
179: If the server sends HTTP/2 frames (like for example an HTTP/2 PING frame) to
180: curl while the connection is held in curl's connection pool, the socket will
181: be found readable when considered for reuse and that makes curl think it is
182: dead and then it will be closed and a new connection gets created instead.
183:
184: This is *best* fixed by adding monitoring to connections while they are kept
185: in the pool so that pings can be responded to appropriately.
186:
187: 1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
188:
189: I'm using libcurl to POST form data using a FILE* with the CURLFORM_STREAM
190: option of curl_formadd(). I've noticed that if the connection drops at just
191: the right time, the POST is reattempted without the data from the file. It
192: seems like the file stream position isn't getting reset to the beginning of
193: the file. I found the CURLOPT_SEEKFUNCTION option and set that with a
194: function that performs an fseek() on the FILE*. However, setting that didn't
195: seem to fix the issue or even get called. See
196: https://github.com/curl/curl/issues/768
197:
198:
199: 2. TLS
200:
201: 2.1 CURLINFO_SSL_VERIFYRESULT has limited support
202:
203: CURLINFO_SSL_VERIFYRESULT is only implemented for the OpenSSL and NSS
204: backends, so relying on this information in a generic app is flaky.
205:
206: 2.2 DER in keychain
207:
208: Curl doesn't recognize certificates in DER format in keychain, but it works
209: with PEM. https://curl.haxx.se/bug/view.cgi?id=1065
210:
211: 2.4 DarwinSSL won't import PKCS#12 client certificates without a password
212:
213: libcurl calls SecPKCS12Import with the PKCS#12 client certificate, but that
214: function rejects certificates that do not have a password.
215: https://github.com/curl/curl/issues/1308
216:
217: 2.5 Client cert handling with Issuer DN differs between backends
218:
219: When the specified client certificate doesn't match any of the
220: server-specified DNs, the OpenSSL and GnuTLS backends behave differently.
221: The github discussion may contain a solution.
222:
223: See https://github.com/curl/curl/issues/1411
224:
225: 2.6 CURL_GLOBAL_SSL
226:
227: Since libcurl 7.57.0, the flag CURL_GLOBAL_SSL is a no-op. The change was
228: merged in https://github.com/curl/curl/commit/d661b0afb571a
229:
230: It was removed since it was
231:
232: A) never clear for applications on how to deal with init in the light of
233: different SSL backends (the option was added back in the days when life
234: was simpler)
235:
236: B) multissl introduced dynamic switching between SSL backends which
237: emphasized (A) even more
238:
239: C) libcurl uses some TLS backend functionality even for non-TLS functions (to
240: get "good" random) so applications trying to avoid the init for
241: performance reasons would do wrong anyway
242:
243: D) never very carefully documented so all this mostly just happened to work
244: for some users
245:
246: However, in spite of the problems with the feature, there were some users who
247: apparently depended on this feature and who now claim libcurl is broken for
248: them. The fix for this situation is not obvious as a downright revert of the
249: patch is totally ruled out due to those reasons above.
250:
251: https://github.com/curl/curl/issues/2276
252:
253: 2.7 Client cert (MTLS) issues with Schannel
254:
255: See https://github.com/curl/curl/issues/3145
256:
257: 2.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname
258:
259: This seems to be a limitation in the underlying Schannel API.
260:
261: https://github.com/curl/curl/issues/3284
262:
263: 2.9 TLS session cache doesn't work with TFO
264:
265: See https://github.com/curl/curl/issues/4301
266:
267: 2.10 Store TLS context per transfer instead of per connection
268:
269: The GnuTLS `backend->cred` and the OpenSSL `backend->ctx` data and their
270: proxy versions (and possibly other TLS backends), could be better moved to be
271: stored in the Curl_easy handle instead of in per connection so that a single
272: transfer that makes multiple connections can reuse the context and reduce
273: memory consumption.
274:
275: https://github.com/curl/curl/issues/5102
276:
277: 3. Email protocols
278:
279: 3.1 IMAP SEARCH ALL truncated response
280:
281: IMAP "SEARCH ALL" truncates output on large boxes. "A quick search of the
282: code reveals that pingpong.c contains some truncation code, at line 408, when
283: it deems the server response to be too large truncating it to 40 characters"
284: https://curl.haxx.se/bug/view.cgi?id=1366
285:
286: 3.2 No disconnect command
287:
288: The disconnect commands (LOGOUT and QUIT) may not be sent by IMAP, POP3 and
289: SMTP if a failure occurs during the authentication phase of a connection.
290:
291: 3.3 POP3 expects "CRLF.CRLF" eob for some single-line responses
292:
293: You have to tell libcurl not to expect a body, when dealing with one line
294: response commands. Please see the POP3 examples and test cases which show
295: this for the NOOP and DELE commands. https://curl.haxx.se/bug/?i=740
296:
297: 3.4 AUTH PLAIN for SMTP is not working on all servers
298:
299: Specifying "--login-options AUTH=PLAIN" on the command line doesn't seem to
300: work correctly.
301:
302: See https://github.com/curl/curl/issues/4080
303:
304: 4. Command line
305:
306: 4.1 -J and -O with %-encoded file names
307:
308: -J/--remote-header-name doesn't decode %-encoded file names. RFC6266 details
309: how it should be done. The can of worm is basically that we have no charset
310: handling in curl and ascii >=128 is a challenge for us. Not to mention that
311: decoding also means that we need to check for nastiness that is attempted,
312: like "../" sequences and the like. Probably everything to the left of any
313: embedded slashes should be cut off.
314: https://curl.haxx.se/bug/view.cgi?id=1294
315:
316: -O also doesn't decode %-encoded names, and while it has even less
317: information about the charset involved the process is similar to the -J case.
318:
319: Note that we won't add decoding to -O without the user asking for it with
320: some other means as well, since -O has always been documented to use the name
321: exactly as specified in the URL.
322:
323: 4.2 -J with -C - fails
324:
325: When using -J (with -O), automatically resumed downloading together with "-C
326: -" fails. Without -J the same command line works! This happens because the
327: resume logic is worked out before the target file name (and thus its
328: pre-transfer size) has been figured out!
329: https://curl.haxx.se/bug/view.cgi?id=1169
330:
331: 4.3 --retry and transfer timeouts
332:
333: If using --retry and the transfer timeouts (possibly due to using -m or
334: -y/-Y) the next attempt doesn't resume the transfer properly from what was
335: downloaded in the previous attempt but will truncate and restart at the
336: original position where it was at before the previous failed attempt. See
337: https://curl.haxx.se/mail/lib-2008-01/0080.html and Mandriva bug report
338: https://qa.mandriva.com/show_bug.cgi?id=22565
339:
340: 4.4 --upload-file . hangs if delay in STDIN
341:
342: "(echo start; sleep 1; echo end) | curl --upload-file . http://mywebsite -vv"
343:
344: ... causes a hang when it shouldn't.
345:
346: See https://github.com/curl/curl/issues/2051
347:
348: 4.5 Improve --data-urlencode space encoding
349:
350: ASCII space characters in --data-urlencode are currently encoded as %20
351: rather than +, which RFC 1866 says should be used.
352:
353: See https://github.com/curl/curl/issues/3229
354:
355: 5. Build and portability issues
356:
357: 5.2 curl-config --libs contains private details
358:
359: "curl-config --libs" will include details set in LDFLAGS when configure is
360: run that might be needed only for building libcurl. Further, curl-config
361: --cflags suffers from the same effects with CFLAGS/CPPFLAGS.
362:
363: 5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
364:
365: See https://github.com/curl/curl/issues/2905
366:
367: 5.4 Cannot compile against a static build of OpenLDAP
368:
369: See https://github.com/curl/curl/issues/2367
370:
371: 5.5 can't handle Unicode arguments in Windows
372:
373: If a URL or filename can't be encoded using the user's current codepage then
374: it can only be encoded properly in the Unicode character set. Windows uses
375: UTF-16 encoding for Unicode and stores it in wide characters, however curl
376: and libcurl are not equipped for that at the moment. And, except for Cygwin,
377: Windows can't use UTF-8 as a locale.
378:
379: https://curl.haxx.se/bug/?i=345
380: https://curl.haxx.se/bug/?i=731
381:
382: 5.6 cmake support gaps
383:
384: The cmake build setup lacks several features that the autoconf build
385: offers. This includes:
386:
387: - use of correct soname for the shared library build
388:
389: - support for several TLS backends are missing
390:
391: - the unit tests cause link failures in regular non-static builds
392:
393: - no nghttp2 check
394:
395: - unusable tool_hugehelp.c with MinGW, see
396: https://github.com/curl/curl/issues/3125
397:
398: 5.7 Visual Studio project gaps
399:
400: The Visual Studio projects lack some features that the autoconf and nmake
401: builds offer, such as the following:
402:
403: - support for zlib and nghttp2
404: - use of static runtime libraries
405: - add the test suite components
406:
407: In addition to this the following could be implemented:
408:
409: - support for other development IDEs
410: - add PATH environment variables for third-party DLLs
411:
412: 5.8 configure finding libs in wrong directory
413:
414: When the configure script checks for third-party libraries, it adds those
415: directories to the LDFLAGS variable and then tries linking to see if it
416: works. When successful, the found directory is kept in the LDFLAGS variable
417: when the script continues to execute and do more tests and possibly check for
418: more libraries.
419:
420: This can make subsequent checks for libraries wrongly detect another
421: installation in a directory that was previously added to LDFLAGS by another
422: library check!
423:
424: A possibly better way to do these checks would be to keep the pristine LDFLAGS
425: even after successful checks and instead add those verified paths to a
426: separate variable that only after all library checks have been performed gets
427: appended to LDFLAGS.
428:
429: 5.9 Utilize Requires.private directives in libcurl.pc
430:
431: https://github.com/curl/curl/issues/864
432:
433: 5.10 IDN tests failing on Windows / MSYS2
434:
435: It seems like MSYS2 does some UTF-8-to-something-else conversion for Windows
436: compatibility.
437:
438: https://github.com/curl/curl/issues/3747
439:
440: 5.11 configure --with-gssapi with Heimdal is ignored on macOS
441:
442: ... unless you also pass --with-gssapi-libs
443:
444: https://github.com/curl/curl/issues/3841
445:
446: 6. Authentication
447:
448: 6.1 NTLM authentication and unicode
449:
450: NTLM authentication involving unicode user name or password only works
451: properly if built with UNICODE defined together with the WinSSL/Schannel
452: backend. The original problem was mentioned in:
453: https://curl.haxx.se/mail/lib-2009-10/0024.html
454: https://curl.haxx.se/bug/view.cgi?id=896
455:
456: The WinSSL/Schannel version verified to work as mentioned in
457: https://curl.haxx.se/mail/lib-2012-07/0073.html
458:
459: 6.2 MIT Kerberos for Windows build
460:
461: libcurl fails to build with MIT Kerberos for Windows (KfW) due to KfW's
462: library header files exporting symbols/macros that should be kept private to
463: the KfW library. See ticket #5601 at https://krbdev.mit.edu/rt/
464:
465: 6.3 NTLM in system context uses wrong name
466:
467: NTLM authentication using SSPI (on Windows) when (lib)curl is running in
468: "system context" will make it use wrong(?) user name - at least when compared
469: to what winhttp does. See https://curl.haxx.se/bug/view.cgi?id=535
470:
471: 6.4 Negotiate and Kerberos V5 need a fake user name
472:
473: In order to get Negotiate (SPNEGO) authentication to work in HTTP or Kerberos
474: V5 in the e-mail protocols, you need to provide a (fake) user name (this
475: concerns both curl and the lib) because the code wrongly only considers
476: authentication if there's a user name provided by setting
477: conn->bits.user_passwd in url.c https://curl.haxx.se/bug/view.cgi?id=440 How?
478: https://curl.haxx.se/mail/lib-2004-08/0182.html A possible solution is to
479: either modify this variable to be set or introduce a variable such as
480: new conn->bits.want_authentication which is set when any of the authentication
481: options are set.
482:
483: 6.5 NTLM doesn't support password with § character
484:
485: https://github.com/curl/curl/issues/2120
486:
487: 6.6 libcurl can fail to try alternatives with --proxy-any
488:
489: When connecting via a proxy using --proxy-any, a failure to establish an
490: authentication will cause libcurl to abort trying other options if the
491: failed method has a higher preference than the alternatives. As an example,
492: --proxy-any against a proxy which advertise Negotiate and NTLM, but which
493: fails to set up Kerberos authentication won't proceed to try authentication
494: using NTLM.
495:
496: https://github.com/curl/curl/issues/876
497:
498: 6.7 Don't clear digest for single realm
499:
500: https://github.com/curl/curl/issues/3267
501:
502: 7. FTP
503:
504: 7.1 FTP without or slow 220 response
505:
506: If a connection is made to a FTP server but the server then just never sends
507: the 220 response or otherwise is dead slow, libcurl will not acknowledge the
508: connection timeout during that phase but only the "real" timeout - which may
509: surprise users as it is probably considered to be the connect phase to most
510: people. Brought up (and is being misunderstood) in:
511: https://curl.haxx.se/bug/view.cgi?id=856
512:
513: 7.2 FTP with CONNECT and slow server
514:
515: When doing FTP over a socks proxy or CONNECT through HTTP proxy and the multi
516: interface is used, libcurl will fail if the (passive) TCP connection for the
517: data transfer isn't more or less instant as the code does not properly wait
518: for the connect to be confirmed. See test case 564 for a first shot at a test
519: case.
520:
521: 7.3 FTP with NOBODY and FAILONERROR
522:
523: It seems sensible to be able to use CURLOPT_NOBODY and CURLOPT_FAILONERROR
524: with FTP to detect if a file exists or not, but it is not working:
525: https://curl.haxx.se/mail/lib-2008-07/0295.html
526:
527: 7.4 FTP with ACCT
528:
529: When doing an operation over FTP that requires the ACCT command (but not when
530: logging in), the operation will fail since libcurl doesn't detect this and
531: thus fails to issue the correct command:
532: https://curl.haxx.se/bug/view.cgi?id=635
533:
534: 7.5 ASCII FTP
535:
536: FTP ASCII transfers do not follow RFC959. They don't convert the data
537: accordingly (not for sending nor for receiving). RFC 959 section 3.1.1.1
538: clearly describes how this should be done:
539:
540: The sender converts the data from an internal character representation to
541: the standard 8-bit NVT-ASCII representation (see the Telnet
542: specification). The receiver will convert the data from the standard
543: form to his own internal form.
544:
545: Since 7.15.4 at least line endings are converted.
546:
547: 7.6 FTP with NULs in URL parts
548:
549: FTP URLs passed to curl may contain NUL (0x00) in the RFC 1738 <user>,
550: <password>, and <fpath> components, encoded as "%00". The problem is that
551: curl_unescape does not detect this, but instead returns a shortened C string.
552: From a strict FTP protocol standpoint, NUL is a valid character within RFC
553: 959 <string>, so the way to handle this correctly in curl would be to use a
554: data structure other than a plain C string, one that can handle embedded NUL
555: characters. From a practical standpoint, most FTP servers would not
556: meaningfully support NUL characters within RFC 959 <string>, anyway (e.g.,
557: Unix pathnames may not contain NUL).
558:
559: 7.7 FTP and empty path parts in the URL
560:
561: libcurl ignores empty path parts in FTP URLs, whereas RFC1738 states that
562: such parts should be sent to the server as 'CWD ' (without an argument). The
563: only exception to this rule, is that we knowingly break this if the empty
564: part is first in the path, as then we use the double slashes to indicate that
565: the user wants to reach the root dir (this exception SHALL remain even when
566: this bug is fixed).
567:
568: 7.8 Premature transfer end but healthy control channel
569:
570: When 'multi_done' is called before the transfer has been completed the normal
571: way, it is considered a "premature" transfer end. In this situation, libcurl
572: closes the connection assuming it doesn't know the state of the connection so
573: it can't be reused for subsequent requests.
574:
575: With FTP however, this isn't necessarily true but there are a bunch of
576: situations (listed in the ftp_done code) where it *could* keep the connection
577: alive even in this situation - but the current code doesn't. Fixing this would
578: allow libcurl to reuse FTP connections better.
579:
580: 7.9 Passive transfer tries only one IP address
581:
582: When doing FTP operations through a proxy at localhost, the reported spotted
583: that curl only tried to connect once to the proxy, while it had multiple
584: addresses and a failed connect on one address should make it try the next.
585:
586: After switching to passive mode (EPSV), curl should try all IP addresses for
587: "localhost". Currently it tries ::1, but it should also try 127.0.0.1.
588:
589: See https://github.com/curl/curl/issues/1508
590:
591: 7.10 FTPS needs session reuse
592:
593: When the control connection is reused for a subsequent transfer, some FTPS
594: servers complain about "missing session reuse" for the data channel for the
595: second transfer.
596:
597: https://github.com/curl/curl/issues/4654
598:
599: 8. TELNET
600:
601: 8.1 TELNET and time limitations don't work
602:
603: When using telnet, the time limitation options don't work.
604: https://curl.haxx.se/bug/view.cgi?id=846
605:
606: 8.2 Microsoft telnet server
607:
608: There seems to be a problem when connecting to the Microsoft telnet server.
609: https://curl.haxx.se/bug/view.cgi?id=649
610:
611:
612: 9. SFTP and SCP
613:
614: 9.1 SFTP doesn't do CURLOPT_POSTQUOTE correct
615:
616: When libcurl sends CURLOPT_POSTQUOTE commands when connected to a SFTP server
617: using the multi interface, the commands are not being sent correctly and
618: instead the connection is "cancelled" (the operation is considered done)
619: prematurely. There is a half-baked (busy-looping) patch provided in the bug
620: report but it cannot be accepted as-is. See
621: https://curl.haxx.se/bug/view.cgi?id=748
622:
623:
624: 10. SOCKS
625:
626: 10.3 FTPS over SOCKS
627:
628: libcurl doesn't support FTPS over a SOCKS proxy.
629:
630: 10.4 active FTP over a SOCKS
631:
632: libcurl doesn't support active FTP over a SOCKS proxy
633:
634:
635: 11. Internals
636:
637: 11.1 Curl leaks .onion hostnames in DNS
638:
639: Curl sends DNS requests for hostnames with a .onion TLD. This leaks
640: information about what the user is attempting to access, and violates this
641: requirement of RFC7686: https://tools.ietf.org/html/rfc7686
642:
643: Issue: https://github.com/curl/curl/issues/543
644:
645: 11.2 error buffer not set if connection to multiple addresses fails
646:
647: If you ask libcurl to resolve a hostname like example.com to IPv6 addresses
648: only. But you only have IPv4 connectivity. libcurl will correctly fail with
649: CURLE_COULDNT_CONNECT. But the error buffer set by CURLOPT_ERRORBUFFER
650: remains empty. Issue: https://github.com/curl/curl/issues/544
651:
652: 11.3 c-ares deviates from stock resolver on http://1346569778
653:
654: When using the socket resolvers, that URL becomes:
655:
656: * Rebuilt URL to: http://1346569778/
657: * Trying 80.67.6.50...
658:
659: but with c-ares it instead says "Could not resolve: 1346569778 (Domain name
660: not found)"
661:
662: See https://github.com/curl/curl/issues/893
663:
664: 11.4 HTTP test server 'connection-monitor' problems
665:
666: The 'connection-monitor' feature of the sws HTTP test server doesn't work
667: properly if some tests are run in unexpected order. Like 1509 and then 1525.
668:
669: See https://github.com/curl/curl/issues/868
670:
671: 11.5 Connection information when using TCP Fast Open
672:
673: CURLINFO_LOCAL_PORT (and possibly a few other) fails when TCP Fast Open is
674: enabled.
675:
676: See https://github.com/curl/curl/issues/1332 and
677: https://github.com/curl/curl/issues/4296
678:
679: 11.6 slow connect to localhost on Windows
680:
681: When connecting to "localhost" on Windows, curl will resolve the name for
682: both ipv4 and ipv6 and try to connect to both happy eyeballs-style. Something
683: in there does however make it take 200 milliseconds to succeed - which is the
684: HAPPY_EYEBALLS_TIMEOUT define exactly. Lowering that define speeds up the
685: connection, suggesting a problem in the HE handling.
686:
687: If we can *know* that we're talking to a local host, we should lower the
688: happy eyeballs delay timeout for IPv6 (related: hardcode the "localhost"
689: addresses, mentioned in TODO). Possibly we should reduce that delay for all.
690:
691: https://github.com/curl/curl/issues/2281
692:
693: 11.7 signal-based resolver timeouts
694:
695: libcurl built without an asynchronous resolver library uses alarm() to time
696: out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
697: signal handler back into the library with a sigsetjmp, which effectively
698: causes libcurl to continue running within the signal handler. This is
699: non-portable and could cause problems on some platforms. A discussion on the
700: problem is available at https://curl.haxx.se/mail/lib-2008-09/0197.html
701:
702: Also, alarm() provides timeout resolution only to the nearest second. alarm
703: ought to be replaced by setitimer on systems that support it.
704:
705: 11.8 DoH leaks memory after followlocation
706:
707: https://github.com/curl/curl/issues/4592
708:
709: 11.9 DoH doesn't inherit all transfer options
710:
711: https://github.com/curl/curl/issues/4578
712:
713: 11.10 Blocking socket operations in non-blocking API
714:
715: The list of blocking socket operations is in TODO section "More non-blocking".
716:
717: 12. LDAP and OpenLDAP
718:
719: 12.1 OpenLDAP hangs after returning results
720:
721: By configuration defaults, openldap automatically chase referrals on
722: secondary socket descriptors. The OpenLDAP backend is asynchronous and thus
723: should monitor all socket descriptors involved. Currently, these secondary
724: descriptors are not monitored, causing openldap library to never receive
725: data from them.
726:
727: As a temporary workaround, disable referrals chasing by configuration.
728:
729: The fix is not easy: proper automatic referrals chasing requires a
730: synchronous bind callback and monitoring an arbitrary number of socket
731: descriptors for a single easy handle (currently limited to 5).
732:
733: Generic LDAP is synchronous: OK.
734:
735: See https://github.com/curl/curl/issues/622 and
736: https://curl.haxx.se/mail/lib-2016-01/0101.html
737:
738: 12.2 LDAP on Windows does authentication wrong?
739:
740: https://github.com/curl/curl/issues/3116
741:
742: 12.3 LDAP on Windows doesn't work
743:
744: A simple curl command line getting "ldap://ldap.forumsys.com" returns an
745: error that says "no memory" !
746:
747: https://github.com/curl/curl/issues/4261
748:
749: 13. TCP/IP
750:
751: 13.1 --interface for ipv6 binds to unusable IP address
752:
753: Since IPv6 provides a lot of addresses with different scope, binding to an
754: IPv6 address needs to take the proper care so that it doesn't bind to a
755: locally scoped address as that is bound to fail.
756:
757: https://github.com/curl/curl/issues/686
758:
759: 14. DICT
760:
761: 14.1 DICT responses show the underlying protocol
762:
763: When getting a DICT response, the protocol parts of DICT aren't stripped off
764: from the output.
765:
766: https://github.com/curl/curl/issues/1809
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>