curl/src
Daniel Stenberg c72cefea0f
select: use poll() if existing, avoid poll() with no sockets
poll() on macOS 10.12 was deemed broken in 2016 when we discovered that
it misbehaves when provided with no sockets to wait for. The
HAVE_POLL_FINE is used to mark a poll() implementation that behaves
correctly: it *should* still wait the timeout time.

curl has therefore opted to use select() on Apple operating systems ever
since. To avoid the risk that this or other breakage cause problems.

However, using select() internally is also bad because it suffers from
problems when using file descriptors beyond 1024.

This change makes poll() used if it is present, but if there is no
sockets to wait for it avoids using poll() and instead falls back to
select() - but without any sockets to wait for there is no 1024 problem.

This removes all previous special-handling involving HAVE_POLL_FINE.

ref: https://daniel.haxx.se/blog/2016/10/11/poll-on-mac-10-12-is-broken/

Closes #15096
2024-10-01 15:11:50 +02:00
..
.checksrc
.gitignore curl: support embedding a CA bundle 2024-08-03 09:22:26 +02:00
CMakeLists.txt cmake: readd generate-curl.1 dependency for src just in case 2024-09-30 14:11:23 +02:00
curl.rc (lib)curl.rc: set debug flag also for CURLDEBUG and UNITTESTS 2024-05-22 08:38:12 +02:00
Makefile.am tidy-up: indent, whitespace, #error in make files 2024-09-22 09:51:15 +02:00
Makefile.inc code: language cleanup in comments 2024-07-01 22:58:55 +02:00
Makefile.mk Makefile.mk: update to use Markdown sources for manual 2024-09-06 21:57:54 +02:00
mk-file-embed.pl curl: support embedding a CA bundle 2024-08-03 09:22:26 +02:00
mkhelp.pl tidy-up: misc build, tests, lib/macos.c 2024-08-16 16:05:36 +02:00
slist_wc.c
slist_wc.h
terminal.c tidy-up: rename CURL_WINDOWS_APP to CURL_WINDOWS_UWP 2024-09-19 19:24:12 +02:00
terminal.h curl: make warnings and other messages aware of terminal width 2024-05-28 23:12:32 +02:00
tool_binmode.c
tool_binmode.h
tool_bname.c
tool_bname.h
tool_cb_dbg.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_cb_dbg.h
tool_cb_hdr.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_cb_hdr.h
tool_cb_prg.c lib/src: white space edits to comply better with code style 2024-09-19 14:59:12 +02:00
tool_cb_prg.h curl: make warnings and other messages aware of terminal width 2024-05-28 23:12:32 +02:00
tool_cb_rea.c lib/src: white space edits to comply better with code style 2024-09-19 14:59:12 +02:00
tool_cb_rea.h
tool_cb_see.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_cb_see.h tool: move tool_ftruncate64 to tool_util.c 2024-04-25 09:20:38 +02:00
tool_cb_soc.c curl: (on linux) add MPTCP support 2024-06-07 10:54:19 +02:00
tool_cb_soc.h curl: (on linux) add MPTCP support 2024-06-07 10:54:19 +02:00
tool_cb_wrt.c tool_cb_wrt: use "curl_response" if no file name in URL 2024-09-17 13:39:51 +02:00
tool_cb_wrt.h
tool_cfgable.c ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_cfgable.h ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_dirhie.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_dirhie.h
tool_doswin.c tool_doswin: simplify; remove unused options and strncpy calls 2024-09-26 10:45:08 +02:00
tool_doswin.h tool_doswin: simplify; remove unused options and strncpy calls 2024-09-26 10:45:08 +02:00
tool_easysrc.c lib, src: delete stray curl_ prefix from printf calls 2024-08-26 11:00:15 +02:00
tool_easysrc.h build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
tool_filetime.c tidy-up: rename CURL_WINDOWS_APP to CURL_WINDOWS_UWP 2024-09-19 19:24:12 +02:00
tool_filetime.h
tool_findfile.c lib, src: delete stray curl_ prefix from printf calls 2024-08-26 11:00:15 +02:00
tool_findfile.h
tool_formparse.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_formparse.h
tool_getparam.c ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_getparam.h curl: add --skip-existing 2024-08-04 23:28:09 +02:00
tool_getpass.c code: language cleanup in comments 2024-07-01 22:58:55 +02:00
tool_getpass.h code: language cleanup in comments 2024-07-01 22:58:55 +02:00
tool_help.c ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_help.h tool_help: handle longer lines, exit on too long 2024-08-07 00:31:07 +02:00
tool_helpers.c src: namespace symbols clashing with lib 2024-09-05 00:55:44 +02:00
tool_helpers.h src: tidy up types, add necessary casts 2024-05-17 12:32:04 +02:00
tool_hugehelp.c.cvs buildconf.bat: fix tool_hugehelp.c generation 2024-08-21 03:36:18 -04:00
tool_hugehelp.h curl: --help [option] displays documentation for given cmdline option 2024-08-04 16:06:17 +02:00
tool_ipfs.c ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_ipfs.h ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_libinfo.c ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_libinfo.h curl: support embedding a CA bundle 2024-08-03 09:22:26 +02:00
tool_listhelp.c docs: add description of effect of --location-trusted on cookie 2024-08-17 19:44:39 +02:00
tool_main.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_main.h
tool_msgs.c lib, src: delete stray curl_ prefix from printf calls 2024-08-26 11:00:15 +02:00
tool_msgs.h build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
tool_operate.c quic: use send/recvmmsg when available 2024-09-30 08:51:16 +02:00
tool_operate.h curl: add --skip-existing 2024-08-04 23:28:09 +02:00
tool_operhlp.c lib, src, tests: added space around ternary expressions 2024-09-18 15:27:26 +02:00
tool_operhlp.h tool_cb_wrt: use "curl_response" if no file name in URL 2024-09-17 13:39:51 +02:00
tool_paramhlp.c lib, src: delete stray curl_ prefix from printf calls 2024-08-26 11:00:15 +02:00
tool_paramhlp.h tool_paramhlp: bump maximum post data size in memory to 16GB 2024-08-14 07:57:24 +02:00
tool_parsecfg.c curl: add options for safe/no CA bundle search (Windows) 2024-09-22 18:17:25 +02:00
tool_parsecfg.h
tool_progress.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_progress.h
tool_sdecls.h src: namespace symbols clashing with lib 2024-09-05 00:55:44 +02:00
tool_setopt.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_setopt.h curl: make --libcurl output better CURLOPT_*SSLVERSION 2024-03-14 17:59:22 +01:00
tool_setup.h tool: move tool_ftruncate64 to tool_util.c 2024-04-25 09:20:38 +02:00
tool_sleep.c select: use poll() if existing, avoid poll() with no sockets 2024-10-01 15:11:50 +02:00
tool_sleep.h
tool_stderr.c
tool_stderr.h
tool_strdup.c
tool_strdup.h
tool_urlglob.c lib/src: white space edits to comply better with code style 2024-09-19 14:59:12 +02:00
tool_urlglob.h
tool_util.c curl: add options for safe/no CA bundle search (Windows) 2024-09-22 18:17:25 +02:00
tool_util.h curl: add options for safe/no CA bundle search (Windows) 2024-09-22 18:17:25 +02:00
tool_version.h
tool_vms.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_vms.h
tool_writeout_json.c src: fix potential macro confusion in cmake unity builds 2024-08-22 10:45:04 +02:00
tool_writeout_json.h tool_writeout: bsearch the variable name 2024-06-10 23:12:05 +02:00
tool_writeout.c lib/src: white space edits to comply better with code style 2024-09-19 14:59:12 +02:00
tool_writeout.h curl: fix the -w urle.* variables 2024-08-15 14:01:24 +02:00
tool_xattr.c tool_xattr: "guess" URL scheme if none is provided 2024-03-28 16:28:23 +01:00
tool_xattr.h
var.c lib/src: white space edits to comply better with code style 2024-09-19 14:59:12 +02:00
var.h curl: when allocating variables, add the name into the struct 2024-02-07 23:11:40 +01:00