diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-01-15 15:29:56 +0300 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-01-15 17:04:50 +0300 |
commit | 34a6a0254f3a343f4fdb5efa9633dd2b589bf929 (patch) | |
tree | ab279937806327a8a2396b60a9739d74b85c5ccf | |
parent | c5c6afeeb904822a857818c7026e0c49589e5e86 (diff) | |
download | libmicrohttpd-34a6a0254f3a343f4fdb5efa9633dd2b589bf929.tar.gz libmicrohttpd-34a6a0254f3a343f4fdb5efa9633dd2b589bf929.zip |
test_upgrade: don't fail with particular sockets errors
-rw-r--r-- | src/microhttpd/test_upgrade.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/microhttpd/test_upgrade.c b/src/microhttpd/test_upgrade.c index ba242c33..1e5430bc 100644 --- a/src/microhttpd/test_upgrade.c +++ b/src/microhttpd/test_upgrade.c | |||
@@ -772,7 +772,8 @@ send_all (struct wr_socket *sock, | |||
772 | len - off); | 772 | len - off); |
773 | if (0 > ret) | 773 | if (0 > ret) |
774 | { | 774 | { |
775 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ())) | 775 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ()) || |
776 | MHD_SCKT_ERR_IS_EINTR_ (MHD_socket_get_error_ ())) | ||
776 | { | 777 | { |
777 | ret = 0; | 778 | ret = 0; |
778 | continue; | 779 | continue; |
@@ -807,6 +808,8 @@ recv_hdr (struct wr_socket *sock) | |||
807 | { | 808 | { |
808 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ())) | 809 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ())) |
809 | continue; | 810 | continue; |
811 | if (MHD_SCKT_ERR_IS_EINTR_ (MHD_socket_get_error_ ())) | ||
812 | continue; | ||
810 | externalErrorExitDesc ("recv() failed"); | 813 | externalErrorExitDesc ("recv() failed"); |
811 | } | 814 | } |
812 | if (0 == ret) | 815 | if (0 == ret) |
@@ -849,7 +852,8 @@ recv_all (struct wr_socket *sock, | |||
849 | len - off); | 852 | len - off); |
850 | if (0 > ret) | 853 | if (0 > ret) |
851 | { | 854 | { |
852 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ())) | 855 | if (MHD_SCKT_ERR_IS_EAGAIN_ (MHD_socket_get_error_ ()) || |
856 | MHD_SCKT_ERR_IS_EINTR_ (MHD_socket_get_error_ ())) | ||
853 | { | 857 | { |
854 | ret = 0; | 858 | ret = 0; |
855 | continue; | 859 | continue; |
@@ -1107,7 +1111,17 @@ run_mhd_select_loop (struct MHD_Daemon *daemon) | |||
1107 | &ws, | 1111 | &ws, |
1108 | &es, | 1112 | &es, |
1109 | &tv)) | 1113 | &tv)) |
1110 | mhdErrorExitDesc ("MHD_get_fdset() failed"); /* TODO: handle errors */ | 1114 | { |
1115 | #ifdef MHD_POSIX_SOCKETS | ||
1116 | if (EINTR != errno) | ||
1117 | externalErrorExitDesc ("Unexpected select() error"); | ||
1118 | #else | ||
1119 | if ((WSAEINVAL != WSAGetLastError ()) || | ||
1120 | (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) | ||
1121 | externalErrorExitDesc ("Unexpected select() error"); | ||
1122 | Sleep (tv.tv_sec * 1000 + tv.tv_usec / 1000); | ||
1123 | #endif | ||
1124 | } | ||
1111 | MHD_run_from_select (daemon, | 1125 | MHD_run_from_select (daemon, |
1112 | &rs, | 1126 | &rs, |
1113 | &ws, | 1127 | &ws, |