Commit Graph
5278 Commits
Author SHA1 Message Date
Evgeny Grin (Karlson2k) 7d7d9bc6b1 test_upgrade: added timeout detection on send/recv operations 2023-11-24 16:08:31 +03:00
Evgeny Grin (Karlson2k) 53e1e48648 test_upgrade: set TCP_NODELAY unconditionally on used sockets 2023-11-24 16:08:30 +03:00
Evgeny Grin (Karlson2k) 80ecc6d37c test_upgrade: added initial support for timeout detection 2023-11-24 16:08:30 +03:00
Evgeny Grin (Karlson2k) 90b2bab0d5 test_upgrade: used sized send and receive, removed VLA, other improvements 2023-11-24 16:08:30 +03:00
Evgeny Grin (Karlson2k) 1cf76efe80 test_upgrade{,_large}: minor improvements 2023-11-24 16:08:30 +03:00
Evgeny Grin (Karlson2k) 0ddd04b4fc mhd_sockets: fixed error code for W32
The code was used only in tests and was not relevant for W32.
2023-11-24 16:08:25 +03:00
Evgeny Grin (Karlson2k) a19df909da Officially support zero for MHD_OPTION_THREAD_POOL_SIZE 2023-11-23 13:47:00 +03:00
Evgeny Grin (Karlson2k) 67b1cdc29d Tests: added use of MHD_USE_NO_THREAD_SAFETY flag 2023-11-23 13:47:00 +03:00
Evgeny Grin (Karlson2k) b05555f837 Added new daemon flag MHD_USE_NO_THREAD_SAFETY
Do not assume anymore single-threaded environment if external polling
is used.
The application is free to use multiple threads if MHD in the external
polling mode.
The new flag could be used to disable some thread-safety in MHD to
improve single-thread processing speed and resources usage. Basically
the new flag restores the old behaviour for external polling mode.
2023-11-21 17:37:15 +03:00
Evgeny Grin (Karlson2k) 38e2c1faac Unified and simplified fd_set filling 2023-11-21 17:37:14 +03:00
Evgeny Grin (Karlson2k) af6dd184d6 Micro-optimisations for non-overridable FD_SETSIZE 2023-11-21 17:37:14 +03:00
Evgeny Grin (Karlson2k) f6b5ec5869 Improved daemon shutdown handling in external polling mode 2023-11-21 17:37:14 +03:00
Evgeny Grin (Karlson2k) 6fde86c265 test_digestauth2: fixed order of the initial checks
This should improve reported warnings when test is skipped.
2023-11-21 17:37:14 +03:00
Evgeny Grin (Karlson2k) 9dcf06f9eb test_daemon: fixed to not skip if failed 2023-11-21 17:37:13 +03:00
Evgeny Grin (Karlson2k) 53a691039c Moved user options counter to shorter its lifetime 2023-11-21 17:37:13 +03:00
Evgeny Grin (Karlson2k) a54fe75ecd MHD_start_daemon(): reject INTERNAL_POLLING_THREAD if threads are disabled 2023-11-21 17:37:13 +03:00
Evgeny Grin (Karlson2k) 5cbdf77176 MHD_start_daemon(): moved daemon flags internal initialisation 2023-11-21 17:37:13 +03:00
Evgeny Grin (Karlson2k) 149db58a06 MHD_quiesce_daemon(): fixed return value if already quiesced
Fixed to return proper documented value when MHD_quiesce_daemon() was
already called for the daemon.
2023-11-21 17:37:12 +03:00
Evgeny Grin (Karlson2k) e35469ec9b Added detection of more conditions to process the data without waiting
If no new or current connections are pending to be processed, it is
a good moment to perform some internal maintenance, like cleanup
2023-11-21 17:37:12 +03:00
Evgeny Grin (Karlson2k) cd4d2f65fc MHD_add_connection(): minor readability improvement 2023-11-16 17:14:14 +03:00
Evgeny Grin (Karlson2k) 050c641bde MHD_add_connection(): added more checks for correct members of sockaddr 2023-11-16 17:05:32 +03:00
Evgeny Grin (Karlson2k) bfa7c5a10c MHD_start_daemon(): fixed leaked listen socket when daemon start failed 2023-11-16 10:04:29 +03:00
Evgeny Grin (Karlson2k) 89021a86ee MHD_start_daemon(): added check for app-provided socket to fit fd_set 2023-11-16 10:03:33 +03:00
Evgeny Grin (Karlson2k) 6cb3cc344e Fixed (again) and improved detection of application-provided socket type
Moved detection part into socket processing from parameters processing
part.
2023-11-16 09:08:41 +03:00
Evgeny Grin (Karlson2k) f5a72d27f3 Implemented new option MHD_OPTION_SOCK_ADDR_LEN
Improved detection of TCP/IP port in application-provided sockaddr.
Added automatic detection of used address facility (sockets type).
Improved support of platforms with sa_len, ss_len, sin_len and sin6_len.
2023-11-16 09:08:40 +03:00
Evgeny Grin (Karlson2k) f73ab43831 microhttpd.h: minor clarification for doxy 2023-11-15 15:28:38 +03:00
Evgeny Grin (Karlson2k) 6ee00803ef Moved check for listen socket to fit fd_set 2023-11-15 15:26:39 +03:00
Evgeny Grin (Karlson2k) dc4bbb0c82 Additional corrections for MHD_OPTION_APP_FD_SETSIZE 2023-11-15 15:22:43 +03:00
Evgeny Grin (Karlson2k) b6737ab39b Added check for signed socket type 2023-11-12 19:26:45 +03:00
Evgeny Grin (Karlson2k) bcdb52984c MHD_start_daemon(): further improved UNIX / IP socket detection 2023-11-12 18:56:20 +03:00
Evgeny Grin (Karlson2k) c7998d3af3 Fixed ignored daemon port when MHD_OPTION_LISTEN_SOCKET or MHD_OPTION_SOCK_ADDR are used as documented 2023-11-12 18:50:22 +03:00
Evgeny Grin (Karlson2k) 75dbfbc716 Implemented and documented MHD_OPTION_LISTEN_SOCKET followed by MHD_INVALID_SOCKET 2023-11-12 11:50:30 +03:00
Evgeny Grin (Karlson2k) a564993122 MHD_start_daemon(): added check for epoll FD to fit fd_set for external polling mode 2023-11-10 17:38:26 +03:00
Evgeny Grin (Karlson2k) c211e198c6 MHD_start_daemon(): added stricter checks for bind() and listen() return values 2023-11-10 17:38:26 +03:00
Evgeny Grin (Karlson2k) 696e040146 MHD_D_DOES_SCKT_FIT_FDSET_(): simplified macro 2023-11-10 17:38:25 +03:00
Evgeny Grin (Karlson2k) 068f4b6b86 MHD_start_daemon(): added some asserts 2023-11-10 17:38:24 +03:00
Evgeny Grin (Karlson2k) e47f63a37b MHD_start_daemon(): mark listen as UNIX based on available information 2023-11-10 17:38:24 +03:00
Evgeny Grin (Karlson2k) aec9938235 daemon.c: moved processing and checking of app-provided listen socket 2023-11-10 17:38:24 +03:00
Evgeny Grin (Karlson2k) cfc790488d .gitlab-ci.yml: removed "keep-going" make flag 2023-11-10 09:33:41 +03:00
Evgeny Grin (Karlson2k) e62cd69da8 Fixed copy-paste error introduced by 2475030dcb 2023-11-09 20:08:32 +03:00
Evgeny Grin (Karlson2k) 2475030dcb Added use of the new internal macro MHD_D_IS_USING_THREAD_PER_CONN_ 2023-11-09 16:53:28 +03:00
Evgeny Grin (Karlson2k) a0de9d3310 Added use of the new internal macro MHD_D_IS_USING_THREADS_()
This should reduce the binary size when compiled without threads support
2023-11-09 12:31:12 +03:00
Evgeny Grin (Karlson2k) ede33803c6 Fixed merge conflict introduced by 32eae456fd 2023-11-08 20:32:53 +03:00
Evgeny Grin (Karlson2k) 32eae456fd Added new function MHD_run_from_select2() with FD_SETSIZE value
Added wrapper macro MHD_run_from_select() to automatically use current
FD_SETSIZE value.
This should complete the support for flexible FD_SETSIZE (which is used
on most platforms with GNU/Linux as notable exception).
This also fixes potential fd_set overrun when sockets with too large
numbers are used.
2023-11-08 20:15:01 +03:00
Evgeny Grin (Karlson2k) 09b7e335d8 Added ignore of MHD_OPTION_APP_FD_SETSIZE when poll() is used 2023-11-08 20:15:01 +03:00
Evgeny Grin (Karlson2k) dcb24300bd Additional corrections for MHD_get_fdset2() 2023-11-08 20:15:00 +03:00
Evgeny Grin (Karlson2k) 8629a47f83 Upgraded connection: added missing check 2023-11-08 16:39:58 +03:00
Evgeny Grin (Karlson2k) cec5aed907 mhd_itc.h: cosmetics 2023-11-08 10:28:19 +03:00
Evgeny Grin (Karlson2k) ce1ca4cf4e MHD_run_from_select(): reworked workaround for missing except_fd_set
It was not compatible with flexible FD_SETSIZE
2023-11-07 21:07:41 +03:00
Evgeny Grin (Karlson2k) c66af7359f daemon.c: cosmetics 2023-11-07 20:56:02 +03:00