aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--src/examples/connection_close.c6
-rw-r--r--src/examples/demo.c6
-rw-r--r--src/examples/demo_https.c6
-rw-r--r--src/examples/fileserver_example.c4
-rw-r--r--src/examples/websocket_threaded_example.c68
-rw-r--r--src/include/microhttpd.h2
-rw-r--r--src/lib/connection_add.c6
-rw-r--r--src/lib/connection_options.c4
-rw-r--r--src/lib/connection_update_last_activity.c4
-rw-r--r--src/lib/daemon_poll.c4
-rw-r--r--src/lib/daemon_start.c14
-rw-r--r--src/lib/md5.h2
-rw-r--r--src/lib/mhd_mono_clock.c4
-rw-r--r--src/lib/mhd_threads.c3
-rw-r--r--src/lib/tsearch.c28
-rw-r--r--src/microhttpd/connection.c30
-rw-r--r--src/microhttpd/daemon.c159
-rw-r--r--src/microhttpd/digestauth.c4
-rw-r--r--src/microhttpd/internal.c40
-rw-r--r--src/microhttpd/internal.h2
-rw-r--r--src/microhttpd/md5.h2
-rw-r--r--src/microhttpd/memorypool.c6
-rw-r--r--src/microhttpd/mhd_mono_clock.c4
-rw-r--r--src/microhttpd/mhd_send.c12
-rw-r--r--src/microhttpd/mhd_threads.c3
-rw-r--r--src/microhttpd/postprocessor.c8
-rw-r--r--src/microhttpd/response.c12
-rw-r--r--src/microhttpd/sha256.h2
-rw-r--r--src/microhttpd/test_daemon.c6
-rw-r--r--src/microhttpd/test_postprocessor_large.c2
-rw-r--r--src/microhttpd/test_start_stop.c6
-rw-r--r--src/microhttpd/test_str.c144
-rw-r--r--src/microhttpd/test_upgrade_large.c192
-rw-r--r--src/microhttpd/tsearch.c28
-rw-r--r--src/testcurl/https/test_empty_response.c2
-rw-r--r--src/testcurl/https/test_https_get.c4
-rw-r--r--src/testcurl/https/test_https_session_info.c2
-rw-r--r--src/testcurl/https/tls_test_common.c2
-rw-r--r--src/testcurl/test_digestauth.c2
-rw-r--r--src/testcurl/test_digestauth_with_arguments.c2
-rw-r--r--src/testcurl/test_get.c4
-rw-r--r--src/testcurl/test_get_chunked.c2
-rw-r--r--src/testcurl/test_get_empty.c4
-rw-r--r--src/testcurl/test_post.c2
-rw-r--r--src/testcurl/test_post_loop.c2
-rw-r--r--src/testcurl/test_quiesce_stream.c2
-rw-r--r--src/testcurl/test_termination.c2
-rw-r--r--src/testzzuf/test_get_chunked.c2
49 files changed, 530 insertions, 333 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ad82c78..0f6fb3eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
1Sun 27 Sep 2020 10:08:03 PM CEST
2 Fixed incorrect triggering of epoll edge polling for
3 "upgraded" TLS connections. Fixed a few cases where
4 gnutls_record_uncork() return value was still ignored,
5 possibly causing buffer to not be flushed correctly. -CG
6
1Sat 26 Sep 2020 08:18:02 PM CEST 7Sat 26 Sep 2020 08:18:02 PM CEST
2 Make MHD_USE_NO_LISTEN_SOCKET work in conjunction with 8 Make MHD_USE_NO_LISTEN_SOCKET work in conjunction with
3 MHD internal threads. -CG/DE 9 MHD internal threads. -CG/DE
diff --git a/src/examples/connection_close.c b/src/examples/connection_close.c
index fb9f77d9..b0314dea 100644
--- a/src/examples/connection_close.c
+++ b/src/examples/connection_close.c
@@ -102,10 +102,10 @@ main (int argc, char *const *argv)
102 return 1; 102 return 1;
103 } 103 }
104 d = MHD_start_daemon (/* MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */ 104 d = MHD_start_daemon (/* MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */
105 /* MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */ 105 /* MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */
106 /* MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | MHD_USE_POLL, */ 106 /* MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | MHD_USE_POLL, */
107 MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD 107 MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD
108 | MHD_USE_ERROR_LOG | MHD_USE_POLL, // | MHD_USE_ITC, 108 | MHD_USE_ERROR_LOG | MHD_USE_POLL, // | MHD_USE_ITC,
109 /* MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */ 109 /* MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG, */
110 atoi (argv[1]), 110 atoi (argv[1]),
111 NULL, NULL, &ahc_echo, PAGE, 111 NULL, NULL, &ahc_echo, PAGE,
diff --git a/src/examples/demo.c b/src/examples/demo.c
index 1830d3b0..9f1beda3 100644
--- a/src/examples/demo.c
+++ b/src/examples/demo.c
@@ -283,11 +283,11 @@ list_directory (struct ResponseDataContext *rdc,
283 snprintf (fullname, sizeof (fullname), 283 snprintf (fullname, sizeof (fullname),
284 "%s/%s", 284 "%s/%s",
285 dirname, de->d_name)) 285 dirname, de->d_name))
286 continue; /* ugh, file too long? how can this be!? */ 286 continue; /* ugh, file too long? how can this be!? */
287 if (0 != stat (fullname, &sbuf)) 287 if (0 != stat (fullname, &sbuf))
288 continue; /* ugh, failed to 'stat' */ 288 continue; /* ugh, failed to 'stat' */
289 if (! S_ISREG (sbuf.st_mode)) 289 if (! S_ISREG (sbuf.st_mode))
290 continue; /* not a regular file, skip */ 290 continue; /* not a regular file, skip */
291 if (rdc->off + 1024 > rdc->buf_len) 291 if (rdc->off + 1024 > rdc->buf_len)
292 { 292 {
293 void *r; 293 void *r;
diff --git a/src/examples/demo_https.c b/src/examples/demo_https.c
index 69922136..205bc863 100644
--- a/src/examples/demo_https.c
+++ b/src/examples/demo_https.c
@@ -286,11 +286,11 @@ list_directory (struct ResponseDataContext *rdc,
286 snprintf (fullname, sizeof (fullname), 286 snprintf (fullname, sizeof (fullname),
287 "%s/%s", 287 "%s/%s",
288 dirname, de->d_name)) 288 dirname, de->d_name))
289 continue; /* ugh, file too long? how can this be!? */ 289 continue; /* ugh, file too long? how can this be!? */
290 if (0 != stat (fullname, &sbuf)) 290 if (0 != stat (fullname, &sbuf))
291 continue; /* ugh, failed to 'stat' */ 291 continue; /* ugh, failed to 'stat' */
292 if (! S_ISREG (sbuf.st_mode)) 292 if (! S_ISREG (sbuf.st_mode))
293 continue; /* not a regular file, skip */ 293 continue; /* not a regular file, skip */
294 if (rdc->off + 1024 > rdc->buf_len) 294 if (rdc->off + 1024 > rdc->buf_len)
295 { 295 {
296 void *r; 296 void *r;
diff --git a/src/examples/fileserver_example.c b/src/examples/fileserver_example.c
index 767810f9..94c2ca95 100644
--- a/src/examples/fileserver_example.c
+++ b/src/examples/fileserver_example.c
@@ -69,13 +69,13 @@ ahc_echo (void *cls,
69 *ptr = &aptr; 69 *ptr = &aptr;
70 return MHD_YES; 70 return MHD_YES;
71 } 71 }
72 *ptr = NULL; /* reset when done */ 72 *ptr = NULL; /* reset when done */
73 /* WARNING: direct usage of url as filename is for example only! 73 /* WARNING: direct usage of url as filename is for example only!
74 * NEVER pass received data directly as parameter to file manipulation 74 * NEVER pass received data directly as parameter to file manipulation
75 * functions. Always check validity of data before using. 75 * functions. Always check validity of data before using.
76 */ 76 */
77 if (NULL != strstr (url, "../")) /* Very simplified check! */ 77 if (NULL != strstr (url, "../")) /* Very simplified check! */
78 fd = -1; /* Do not allow usage of parent directories. */ 78 fd = -1; /* Do not allow usage of parent directories. */
79 else 79 else
80 fd = open (url + 1, O_RDONLY); 80 fd = open (url + 1, O_RDONLY);
81 if (-1 != fd) 81 if (-1 != fd)
diff --git a/src/examples/websocket_threaded_example.c b/src/examples/websocket_threaded_example.c
index 44cb3493..13e75dab 100644
--- a/src/examples/websocket_threaded_example.c
+++ b/src/examples/websocket_threaded_example.c
@@ -36,40 +36,40 @@
36 "<title>WebSocket chat</title>\n" \ 36 "<title>WebSocket chat</title>\n" \
37 "<script>\n" \ 37 "<script>\n" \
38 "document.addEventListener('DOMContentLoaded', function() {\n" \ 38 "document.addEventListener('DOMContentLoaded', function() {\n" \
39 " const ws = new WebSocket('ws://' + window.location.host);\n" \ 39 " const ws = new WebSocket('ws:// ' + window.location.host);\n" \
40 " const btn = document.getElementById('send');\n" \ 40 // " const btn = document.getElementById('send');\n" \
41 " const msg = document.getElementById('msg');\n" \ 41 // " const msg = document.getElementById('msg');\n" \
42 " const log = document.getElementById('log');\n" \ 42 // " const log = document.getElementById('log');\n" \
43 " ws.onopen = function() {\n" \ 43 // " ws.onopen = function() {\n" \
44 " log.value += 'Connected\\n';\n" \ 44 // " log.value += 'Connected\\n';\n" \
45 " };\n" \ 45 // " };\n" \
46 " ws.onclose = function() {\n" \ 46 // " ws.onclose = function() {\n" \
47 " log.value += 'Disconnected\\n';\n" \ 47 // " log.value += 'Disconnected\\n';\n" \
48 " };\n" \ 48 // " };\n" \
49 " ws.onmessage = function(ev) {\n" \ 49 // " ws.onmessage = function(ev) {\n" \
50 " log.value += ev.data + '\\n';\n" \ 50 // " log.value += ev.data + '\\n';\n" \
51 " };\n" \ 51 // " };\n" \
52 " btn.onclick = function() {\n" \ 52 // " btn.onclick = function() {\n" \
53 " log.value += '<You>: ' + msg.value + '\\n';\n" \ 53 // " log.value += '<You>: ' + msg.value + '\\n';\n" \
54 " ws.send(msg.value);\n" \ 54 // " ws.send(msg.value);\n" \
55 " };\n" \ 55 // " };\n" \
56 " msg.onkeyup = function(ev) {\n" \ 56 // " msg.onkeyup = function(ev) {\n" \
57 " if (ev.keyCode === 13) {\n" \ 57 // " if (ev.keyCode === 13) {\n" \
58 " ev.preventDefault();\n" \ 58 // " ev.preventDefault();\n" \
59 " ev.stopPropagation();\n" \ 59 // " ev.stopPropagation();\n" \
60 " btn.click();\n" \ 60 // " btn.click();\n" \
61 " msg.value = '';\n" \ 61 // " msg.value = '';\n" \
62 " }\n" \ 62 // " }\n" \
63 " };\n" \ 63 // " };\n" \
64 "});\n" \ 64 // "});\n" \
65 "</script>\n" \ 65 // "</script>\n" \
66 "</head>\n" \ 66 // "</head>\n" \
67 "<body>\n" \ 67 // "<body>\n" \
68 "<input type='text' id='msg' autofocus/>\n" \ 68 // "<input type='text' id='msg' autofocus/>\n" \
69 "<input type='button' id='send' value='Send' /><br /><br />\n" \ 69 // "<input type='button' id='send' value='Send' /><br /><br />\n" \
70 "<textarea id='log' rows='20' cols='28'></textarea>\n" \ 70 // "<textarea id='log' rows='20' cols='28'></textarea>\n" \
71 "</body>\n" \ 71 // "</body>\n" \
72 "</html>" 72 // "</html>"
73#define BAD_REQUEST_PAGE \ 73#define BAD_REQUEST_PAGE \
74 "<html>\n" \ 74 "<html>\n" \
75 "<head>\n" \ 75 "<head>\n" \
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
index b57ced32..8dfc38c8 100644
--- a/src/include/microhttpd.h
+++ b/src/include/microhttpd.h
@@ -132,7 +132,7 @@ typedef intptr_t ssize_t;
132 * Current version of the library. 132 * Current version of the library.
133 * 0x01093001 = 1.9.30-1. 133 * 0x01093001 = 1.9.30-1.
134 */ 134 */
135#define MHD_VERSION 0x00097104 135#define MHD_VERSION 0x00097105
136 136
137/** 137/**
138 * Operational results from MHD calls. 138 * Operational results from MHD calls.
diff --git a/src/lib/connection_add.c b/src/lib/connection_add.c
index 91dd0076..8875064e 100644
--- a/src/lib/connection_add.c
+++ b/src/lib/connection_add.c
@@ -188,8 +188,8 @@ thread_main_handle_connection (void *data)
188 } 188 }
189#endif /* HAVE_POLL */ 189#endif /* HAVE_POLL */
190 MHD_itc_clear_ (daemon->itc); 190 MHD_itc_clear_ (daemon->itc);
191 continue; /* Check again for resume. */ 191 continue; /* Check again for resume. */
192 } /* End of "suspended" branch. */ 192 } /* End of "suspended" branch. */
193 193
194 if (was_suspended) 194 if (was_suspended)
195 { 195 {
@@ -1047,7 +1047,7 @@ MHD_accept_connection_ (struct MHD_Daemon *daemon)
1047 /* This could be a common occurrence with multiple worker threads */ 1047 /* This could be a common occurrence with multiple worker threads */
1048 if (MHD_SCKT_ERR_IS_ (err, 1048 if (MHD_SCKT_ERR_IS_ (err,
1049 MHD_SCKT_EINVAL_)) 1049 MHD_SCKT_EINVAL_))
1050 return MHD_SC_DAEMON_ALREADY_SHUTDOWN; /* can happen during shutdown, let's hope this is the cause... */ 1050 return MHD_SC_DAEMON_ALREADY_SHUTDOWN; /* can happen during shutdown, let's hope this is the cause... */
1051 if (MHD_SCKT_ERR_IS_DISCNN_BEFORE_ACCEPT_ (err)) 1051 if (MHD_SCKT_ERR_IS_DISCNN_BEFORE_ACCEPT_ (err))
1052 return MHD_SC_ACCEPT_FAST_DISCONNECT; /* do not print error if client just disconnected early */ 1052 return MHD_SC_ACCEPT_FAST_DISCONNECT; /* do not print error if client just disconnected early */
1053 if (MHD_SCKT_ERR_IS_EAGAIN_ (err) ) 1053 if (MHD_SCKT_ERR_IS_EAGAIN_ (err) )
diff --git a/src/lib/connection_options.c b/src/lib/connection_options.c
index ef167354..ad6a0fa7 100644
--- a/src/lib/connection_options.c
+++ b/src/lib/connection_options.c
@@ -90,10 +90,10 @@ MHD_update_last_activity_ (struct MHD_Connection *connection)
90 struct MHD_Daemon *daemon = connection->daemon; 90 struct MHD_Daemon *daemon = connection->daemon;
91 91
92 if (0 == connection->connection_timeout) 92 if (0 == connection->connection_timeout)
93 return; /* Skip update of activity for connections 93 return; /* Skip update of activity for connections
94 without timeout timer. */ 94 without timeout timer. */
95 if (connection->suspended) 95 if (connection->suspended)
96 return; /* no activity on suspended connections */ 96 return; /* no activity on suspended connections */
97 97
98 connection->last_activity = MHD_monotonic_sec_counter (); 98 connection->last_activity = MHD_monotonic_sec_counter ();
99 if (MHD_TM_THREAD_PER_CONNECTION == daemon->threading_mode) 99 if (MHD_TM_THREAD_PER_CONNECTION == daemon->threading_mode)
diff --git a/src/lib/connection_update_last_activity.c b/src/lib/connection_update_last_activity.c
index 73628675..326b5b3f 100644
--- a/src/lib/connection_update_last_activity.c
+++ b/src/lib/connection_update_last_activity.c
@@ -38,10 +38,10 @@ MHD_connection_update_last_activity_ (struct MHD_Connection *connection)
38 struct MHD_Daemon *daemon = connection->daemon; 38 struct MHD_Daemon *daemon = connection->daemon;
39 39
40 if (0 == connection->connection_timeout) 40 if (0 == connection->connection_timeout)
41 return; /* Skip update of activity for connections 41 return; /* Skip update of activity for connections
42 without timeout timer. */ 42 without timeout timer. */
43 if (connection->suspended) 43 if (connection->suspended)
44 return; /* no activity on suspended connections */ 44 return; /* no activity on suspended connections */
45 45
46 connection->last_activity = MHD_monotonic_sec_counter (); 46 connection->last_activity = MHD_monotonic_sec_counter ();
47 if (MHD_TM_THREAD_PER_CONNECTION == daemon->threading_mode) 47 if (MHD_TM_THREAD_PER_CONNECTION == daemon->threading_mode)
diff --git a/src/lib/daemon_poll.c b/src/lib/daemon_poll.c
index ec52b45d..27cdd4ca 100644
--- a/src/lib/daemon_poll.c
+++ b/src/lib/daemon_poll.c
@@ -294,9 +294,9 @@ MHD_daemon_poll_all_ (struct MHD_Daemon *daemon,
294 prev = pos->prev; 294 prev = pos->prev;
295 /* first, sanity checks */ 295 /* first, sanity checks */
296 if (i >= num_connections) 296 if (i >= num_connections)
297 break; /* connection list changed somehow, retry later ... */ 297 break; /* connection list changed somehow, retry later ... */
298 if (p[poll_server + i].fd != pos->socket_fd) 298 if (p[poll_server + i].fd != pos->socket_fd)
299 continue; /* fd mismatch, something else happened, retry later ... */ 299 continue; /* fd mismatch, something else happened, retry later ... */
300 MHD_connection_call_handlers_ (pos, 300 MHD_connection_call_handlers_ (pos,
301 0 != (p[poll_server + i].revents & POLLIN), 301 0 != (p[poll_server + i].revents & POLLIN),
302 0 != (p[poll_server + i].revents 302 0 != (p[poll_server + i].revents
diff --git a/src/lib/daemon_start.c b/src/lib/daemon_start.c
index 5704b034..e2998f9d 100644
--- a/src/lib/daemon_start.c
+++ b/src/lib/daemon_start.c
@@ -67,11 +67,11 @@ configure_listen_reuse (struct MHD_Daemon *daemon)
67 } 67 }
68 return MHD_SC_OK; 68 return MHD_SC_OK;
69#endif /* ! MHD_WINSOCK_SOCKETS */ 69#endif /* ! MHD_WINSOCK_SOCKETS */
70 /* Use SO_REUSEADDR on Windows and SO_REUSEPORT on most platforms. 70 /* Use SO_REUSEADDR on Windows and SO_REUSEPORT on most platforms.
71 * Fail if SO_REUSEPORT is not defined or setsockopt fails. 71 * Fail if SO_REUSEPORT is not defined or setsockopt fails.
72 */ 72 */
73 /* SO_REUSEADDR on W32 has the same semantics 73 /* SO_REUSEADDR on W32 has the same semantics
74 as SO_REUSEPORT on BSD/Linux */ 74 as SO_REUSEPORT on BSD/Linux */
75#if defined(MHD_WINSOCK_SOCKETS) || defined(SO_REUSEPORT) 75#if defined(MHD_WINSOCK_SOCKETS) || defined(SO_REUSEPORT)
76 if (0 > setsockopt (daemon->listen_socket, 76 if (0 > setsockopt (daemon->listen_socket,
77 SOL_SOCKET, 77 SOL_SOCKET,
@@ -93,8 +93,8 @@ configure_listen_reuse (struct MHD_Daemon *daemon)
93 } 93 }
94 return MHD_SC_OK; 94 return MHD_SC_OK;
95#else /* !MHD_WINSOCK_SOCKETS && !SO_REUSEPORT */ 95#else /* !MHD_WINSOCK_SOCKETS && !SO_REUSEPORT */
96 /* we're supposed to allow address:port re-use, but 96 /* we're supposed to allow address:port re-use, but
97 on this platform we cannot; fail hard */ 97 on this platform we cannot; fail hard */
98#ifdef HAVE_MESSAGES 98#ifdef HAVE_MESSAGES
99 MHD_DLOG (daemon, 99 MHD_DLOG (daemon,
100 MHD_SC_LISTEN_ADDRESS_REUSE_ENABLE_NOT_SUPPORTED, 100 MHD_SC_LISTEN_ADDRESS_REUSE_ENABLE_NOT_SUPPORTED,
diff --git a/src/lib/md5.h b/src/lib/md5.h
index 8e95b29b..8005b70b 100644
--- a/src/lib/md5.h
+++ b/src/lib/md5.h
@@ -26,7 +26,7 @@
26 26
27struct MD5Context 27struct MD5Context
28{ 28{
29 uint32_t state[4]; /* state */ 29 uint32_t state[4]; /* state */
30 uint64_t count; /* number of bits, mod 2^64 */ 30 uint64_t count; /* number of bits, mod 2^64 */
31 uint8_t buffer[MD5_BLOCK_SIZE]; /* input buffer */ 31 uint8_t buffer[MD5_BLOCK_SIZE]; /* input buffer */
32}; 32};
diff --git a/src/lib/mhd_mono_clock.c b/src/lib/mhd_mono_clock.c
index fa548f6e..0bd9984e 100644
--- a/src/lib/mhd_mono_clock.c
+++ b/src/lib/mhd_mono_clock.c
@@ -254,8 +254,8 @@ MHD_monotonic_sec_counter_init (void)
254 LARGE_INTEGER freq; 254 LARGE_INTEGER freq;
255 LARGE_INTEGER perf_counter; 255 LARGE_INTEGER perf_counter;
256 256
257 QueryPerformanceFrequency (&freq); /* never fail on XP and later */ 257 QueryPerformanceFrequency (&freq); /* never fail on XP and later */
258 QueryPerformanceCounter (&perf_counter); /* never fail on XP and later */ 258 QueryPerformanceCounter (&perf_counter); /* never fail on XP and later */
259 perf_freq = freq.QuadPart; 259 perf_freq = freq.QuadPart;
260 perf_start = perf_counter.QuadPart; 260 perf_start = perf_counter.QuadPart;
261 mono_clock_source = _MHD_CLOCK_PERFCOUNTER; 261 mono_clock_source = _MHD_CLOCK_PERFCOUNTER;
diff --git a/src/lib/mhd_threads.c b/src/lib/mhd_threads.c
index 980a2cbf..c8a7bdf4 100644
--- a/src/lib/mhd_threads.c
+++ b/src/lib/mhd_threads.c
@@ -49,7 +49,8 @@
49#if defined(HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD) || \ 49#if defined(HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD) || \
50 defined(HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI) 50 defined(HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI)
51# define MHD_USE_THREAD_ATTR_SETNAME 1 51# define MHD_USE_THREAD_ATTR_SETNAME 1
52#endif /* HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD || HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI */ 52#endif \
53 /* HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD || HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI */
53 54
54#if defined(HAVE_PTHREAD_SETNAME_NP_GNU) || \ 55#if defined(HAVE_PTHREAD_SETNAME_NP_GNU) || \
55 defined(HAVE_PTHREAD_SET_NAME_NP_FREEBSD) \ 56 defined(HAVE_PTHREAD_SET_NAME_NP_FREEBSD) \
diff --git a/src/lib/tsearch.c b/src/lib/tsearch.c
index 78f37608..1d74dcce 100644
--- a/src/lib/tsearch.c
+++ b/src/lib/tsearch.c
@@ -24,7 +24,7 @@ typedef struct node
24/* $NetBSD: tsearch.c,v 1.5 2005/11/29 03:12:00 christos Exp $ */ 24/* $NetBSD: tsearch.c,v 1.5 2005/11/29 03:12:00 christos Exp $ */
25/* find or insert datum into search tree */ 25/* find or insert datum into search tree */
26void * 26void *
27tsearch (const void *vkey, /* key to be located */ 27tsearch (const void *vkey, /* key to be located */
28 void **vrootp, /* address of tree root */ 28 void **vrootp, /* address of tree root */
29 int (*compar)(const void *, const void *)) 29 int (*compar)(const void *, const void *))
30{ 30{
@@ -38,19 +38,19 @@ tsearch (const void *vkey, /* key to be located */
38 { /* Knuth's T1: */ 38 { /* Knuth's T1: */
39 int r; 39 int r;
40 40
41 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ 41 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
42 return *rootp; /* we found it! */ 42 return *rootp; /* we found it! */
43 43
44 rootp = (r < 0) ? 44 rootp = (r < 0) ?
45 &(*rootp)->llink : /* T3: follow left branch */ 45 &(*rootp)->llink : /* T3: follow left branch */
46 &(*rootp)->rlink; /* T4: follow right branch */ 46 &(*rootp)->rlink; /* T4: follow right branch */
47 } 47 }
48 48
49 q = malloc (sizeof(node_t)); /* T5: key not found */ 49 q = malloc (sizeof(node_t)); /* T5: key not found */
50 if (q) 50 if (q)
51 { /* make new node */ 51 { /* make new node */
52 *rootp = q; /* link new node to old */ 52 *rootp = q; /* link new node to old */
53 q->key = vkey; /* initialize new node */ 53 q->key = vkey; /* initialize new node */
54 q->llink = q->rlink = NULL; 54 q->llink = q->rlink = NULL;
55 } 55 }
56 return q; 56 return q;
@@ -73,8 +73,8 @@ tfind (const void *vkey, /* key to be found */
73 { /* T1: */ 73 { /* T1: */
74 int r; 74 int r;
75 75
76 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ 76 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
77 return *rootp; /* key found */ 77 return *rootp; /* key found */
78 rootp = (r < 0) ? 78 rootp = (r < 0) ?
79 &(*rootp)->llink : /* T3: follow left branch */ 79 &(*rootp)->llink : /* T3: follow left branch */
80 &(*rootp)->rlink; /* T4: follow right branch */ 80 &(*rootp)->rlink; /* T4: follow right branch */
@@ -112,17 +112,17 @@ tdelete (const void *__restrict vkey,
112 &(*rootp)->llink : /* follow llink branch */ 112 &(*rootp)->llink : /* follow llink branch */
113 &(*rootp)->rlink; /* follow rlink branch */ 113 &(*rootp)->rlink; /* follow rlink branch */
114 if (*rootp == NULL) 114 if (*rootp == NULL)
115 return NULL; /* key not found */ 115 return NULL; /* key not found */
116 } 116 }
117 r = (*rootp)->rlink; /* D1: */ 117 r = (*rootp)->rlink; /* D1: */
118 if ((q = (*rootp)->llink) == NULL) /* Left NULL? */ 118 if ((q = (*rootp)->llink) == NULL) /* Left NULL? */
119 { 119 {
120 q = r; 120 q = r;
121 } 121 }
122 else if (r != NULL) 122 else if (r != NULL)
123 { /* Right link is NULL? */ 123 { /* Right link is NULL? */
124 if (r->llink == NULL) 124 if (r->llink == NULL)
125 { /* D2: Find successor */ 125 { /* D2: Find successor */
126 r->llink = q; 126 r->llink = q;
127 q = r; 127 q = r;
128 } 128 }
@@ -135,7 +135,7 @@ tdelete (const void *__restrict vkey,
135 q->rlink = (*rootp)->rlink; 135 q->rlink = (*rootp)->rlink;
136 } 136 }
137 } 137 }
138 free (*rootp); /* D4: Free node */ 138 free (*rootp); /* D4: Free node */
139 *rootp = q; /* link parent to new node */ 139 *rootp = q; /* link parent to new node */
140 return p; 140 return p;
141} 141}
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index cf2bfaa1..b2197310 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -115,7 +115,6 @@
115#endif 115#endif
116 116
117 117
118
119/** 118/**
120 * sendfile() chuck size 119 * sendfile() chuck size
121 */ 120 */
@@ -250,9 +249,9 @@ MHD_get_connection_values (struct MHD_Connection *connection,
250 ret++; 249 ret++;
251 if ( (NULL != iterator) && 250 if ( (NULL != iterator) &&
252 (MHD_NO == iterator (iterator_cls, 251 (MHD_NO == iterator (iterator_cls,
253 pos->kind, 252 pos->kind,
254 pos->header, 253 pos->header,
255 pos->value)) ) 254 pos->value)) )
256 return ret; 255 return ret;
257 } 256 }
258 return ret; 257 return ret;
@@ -764,7 +763,8 @@ MHD_connection_finish_forward_ (struct MHD_Connection *connection)
764 * used with MHD_UPGRADE_ACTION_CLOSE. They will be 763 * used with MHD_UPGRADE_ACTION_CLOSE. They will be
765 * closed by MHD_cleanup_upgraded_connection_() during 764 * closed by MHD_cleanup_upgraded_connection_() during
766 * connection's final cleanup. 765 * connection's final cleanup.
767 */} 766 *///
767}
768 768
769 769
770#endif /* HTTPS_SUPPORT && UPGRADE_SUPPORT*/ 770#endif /* HTTPS_SUPPORT && UPGRADE_SUPPORT*/
@@ -1141,18 +1141,18 @@ try_grow_read_buffer (struct MHD_Connection *connection,
1141 1141
1142 avail_size = MHD_pool_get_free (connection->pool); 1142 avail_size = MHD_pool_get_free (connection->pool);
1143 if (0 == avail_size) 1143 if (0 == avail_size)
1144 return false; /* No more space available */ 1144 return false; /* No more space available */
1145 if (0 == connection->read_buffer_size) 1145 if (0 == connection->read_buffer_size)
1146 new_size = avail_size / 2; /* Use half of available buffer for reading */ 1146 new_size = avail_size / 2; /* Use half of available buffer for reading */
1147 else 1147 else
1148 { 1148 {
1149 size_t grow_size; 1149 size_t grow_size;
1150 1150
1151 grow_size = avail_size / 8; 1151 grow_size = avail_size / 8;
1152 if (MHD_BUF_INC_SIZE > grow_size) 1152 if (MHD_BUF_INC_SIZE > grow_size)
1153 { /* Shortage of space */ 1153 { /* Shortage of space */
1154 if (! required) 1154 if (! required)
1155 return false; /* Grow is not mandatory, leave some space in pool */ 1155 return false; /* Grow is not mandatory, leave some space in pool */
1156 else 1156 else
1157 { 1157 {
1158 /* Shortage of space, but grow is mandatory */ 1158 /* Shortage of space, but grow is mandatory */
@@ -1403,7 +1403,8 @@ build_header_response (struct MHD_Connection *connection)
1403 1403
1404 Note that the change from 'SHOULD NOT' to 'MUST NOT' is 1404 Note that the change from 'SHOULD NOT' to 'MUST NOT' is
1405 a recent development of the HTTP 1.1 specification. 1405 a recent development of the HTTP 1.1 specification.
1406 */content_length_len 1406 *///
1407 content_length_len
1407 = MHD_snprintf_ (content_length_buf, 1408 = MHD_snprintf_ (content_length_buf,
1408 sizeof (content_length_buf), 1409 sizeof (content_length_buf),
1409 MHD_HTTP_HEADER_CONTENT_LENGTH ": " 1410 MHD_HTTP_HEADER_CONTENT_LENGTH ": "
@@ -2438,8 +2439,9 @@ static enum MHD_Result
2438check_write_done (struct MHD_Connection *connection, 2439check_write_done (struct MHD_Connection *connection,
2439 enum MHD_CONNECTION_STATE next_state) 2440 enum MHD_CONNECTION_STATE next_state)
2440{ 2441{
2441 if (connection->write_buffer_append_offset != 2442 if ( (connection->write_buffer_append_offset !=
2442 connection->write_buffer_send_offset) 2443 connection->write_buffer_send_offset) ||
2444 (connection->sk_cork_on) )
2443 return MHD_NO; 2445 return MHD_NO;
2444 connection->write_buffer_append_offset = 0; 2446 connection->write_buffer_append_offset = 0;
2445 connection->write_buffer_send_offset = 0; 2447 connection->write_buffer_send_offset = 0;
@@ -2722,10 +2724,10 @@ MHD_update_last_activity_ (struct MHD_Connection *connection)
2722 struct MHD_Daemon *daemon = connection->daemon; 2724 struct MHD_Daemon *daemon = connection->daemon;
2723 2725
2724 if (0 == connection->connection_timeout) 2726 if (0 == connection->connection_timeout)
2725 return; /* Skip update of activity for connections 2727 return; /* Skip update of activity for connections
2726 without timeout timer. */ 2728 without timeout timer. */
2727 if (connection->suspended) 2729 if (connection->suspended)
2728 return; /* no activity on suspended connections */ 2730 return; /* no activity on suspended connections */
2729 2731
2730 connection->last_activity = MHD_monotonic_sec_counter (); 2732 connection->last_activity = MHD_monotonic_sec_counter ();
2731 if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) 2733 if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index a21462db..31ef6909 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -1333,6 +1333,7 @@ process_urh (struct MHD_UpgradeResponseHandle *urh)
1333 * this function. If 'was_closed' changed externally in the middle 1333 * this function. If 'was_closed' changed externally in the middle
1334 * of processing - it will be processed on next iteration. */ 1334 * of processing - it will be processed on next iteration. */
1335 bool was_closed; 1335 bool was_closed;
1336
1336 if (daemon->shutdown) 1337 if (daemon->shutdown)
1337 { 1338 {
1338 /* Daemon shutting down, application will not receive any more data. */ 1339 /* Daemon shutting down, application will not receive any more data. */
@@ -1355,10 +1356,9 @@ process_urh (struct MHD_UpgradeResponseHandle *urh)
1355 { 1356 {
1356#ifdef HAVE_MESSAGES 1357#ifdef HAVE_MESSAGES
1357 MHD_DLOG (daemon, 1358 MHD_DLOG (daemon,
1358 _ ( 1359 _ ("Failed to forward to application "
1359 "Failed to forward to application " 1360 MHD_UNSIGNED_LONG_LONG_PRINTF \
1360 MHD_UNSIGNED_LONG_LONG_PRINTF \ 1361 " bytes of data received from remote side: application shut down socket.\n"),
1361 " bytes of data received from remote side: application shut down socket.\n"),
1362 (MHD_UNSIGNED_LONG_LONG) urh->in_buffer_used); 1362 (MHD_UNSIGNED_LONG_LONG) urh->in_buffer_used);
1363#endif 1363#endif
1364 1364
@@ -1367,7 +1367,8 @@ process_urh (struct MHD_UpgradeResponseHandle *urh)
1367 * check for any pending data even if socket is not marked 1367 * check for any pending data even if socket is not marked
1368 * as 'ready' (signal may arrive after poll()/select()). 1368 * as 'ready' (signal may arrive after poll()/select()).
1369 * Socketpair for forwarding is always in non-blocking mode 1369 * Socketpair for forwarding is always in non-blocking mode
1370 * so no risk that recv() will block the thread. */if (0 != urh->out_buffer_size) 1370 * so no risk that recv() will block the thread. *///
1371 if (0 != urh->out_buffer_size)
1371 urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY; 1372 urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY;
1372 /* Discard any data received form remote. */ 1373 /* Discard any data received form remote. */
1373 urh->in_buffer_used = 0; 1374 urh->in_buffer_used = 0;
@@ -1379,12 +1380,14 @@ process_urh (struct MHD_UpgradeResponseHandle *urh)
1379 connection->tls_read_ready = false; 1380 connection->tls_read_ready = false;
1380 } 1381 }
1381 1382
1382 /* On some platforms (W32, possibly Darwin) failed send() (send() will always 1383 /* On some platforms (W32, possibly Darwin) failed send() (send() will
1383 * fail after remote disconnect was detected) may discard data in system 1384 * always fail after remote disconnect was detected) may discard data in
1384 * buffers received by system but not yet read by recv(). 1385 * system buffers received by system but not yet read by recv(). So, before
1385 * So, before trying send() on any socket, recv() must be performed at first 1386 * trying send() on any socket, recv() must be performed at first otherwise
1386 * otherwise last part of incoming data may be lost. *//* If disconnect or error was detected - try to read from socket 1387 * last part of incoming data may be lost. If disconnect or error was
1387 * to dry data possibly pending is system buffers. */if (0 != (MHD_EPOLL_STATE_ERROR & urh->app.celi)) 1388 * detected - try to read from socket to dry data possibly pending is system
1389 * buffers. *///
1390 if (0 != (MHD_EPOLL_STATE_ERROR & urh->app.celi))
1388 urh->app.celi |= MHD_EPOLL_STATE_READ_READY; 1391 urh->app.celi |= MHD_EPOLL_STATE_READ_READY;
1389 if (0 != (MHD_EPOLL_STATE_ERROR & urh->mhd.celi)) 1392 if (0 != (MHD_EPOLL_STATE_ERROR & urh->mhd.celi))
1390 urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY; 1393 urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY;
@@ -1424,10 +1427,10 @@ process_urh (struct MHD_UpgradeResponseHandle *urh)
1424 else /* 0 < res */ 1427 else /* 0 < res */
1425 { 1428 {
1426 urh->in_buffer_used += res; 1429 urh->in_buffer_used += res;
1427 if (buf_size > (size_t) res) 1430 if (0 < gnutls_record_check_pending (connection->tls_session))
1428 urh->app.celi &= ~MHD_EPOLL_STATE_READ_READY; 1431 {
1429 else if (0 < gnutls_record_check_pending (connection->tls_session))
1430 connection->tls_read_ready = true; 1432 connection->tls_read_ready = true;
1433 }
1431 } 1434 }
1432 if (MHD_EPOLL_STATE_ERROR == 1435 if (MHD_EPOLL_STATE_ERROR ==
1433 ((MHD_EPOLL_STATE_ERROR | MHD_EPOLL_STATE_READ_READY) & urh->app.celi)) 1436 ((MHD_EPOLL_STATE_ERROR | MHD_EPOLL_STATE_READ_READY) & urh->app.celi))
@@ -1932,8 +1935,8 @@ thread_main_handle_connection (void *data)
1932 } 1935 }
1933#endif /* HAVE_POLL */ 1936#endif /* HAVE_POLL */
1934 MHD_itc_clear_ (daemon->itc); 1937 MHD_itc_clear_ (daemon->itc);
1935 continue; /* Check again for resume. */ 1938 continue; /* Check again for resume. */
1936 } /* End of "suspended" branch. */ 1939 } /* End of "suspended" branch. */
1937 1940
1938 if (was_suspended) 1941 if (was_suspended)
1939 { 1942 {
@@ -2228,7 +2231,8 @@ MHD_cleanup_connections (struct MHD_Daemon *daemon);
2228 * and if possible. 2231 * and if possible.
2229 */ 2232 */
2230#define MHD_TLSLIB_NEED_PUSH_FUNC 1 2233#define MHD_TLSLIB_NEED_PUSH_FUNC 1
2231#endif /* !MHD_WINSOCK_SOCKETS && !MHD_socket_nosignal_ && (GNUTLS_VERSION_NUMBER+0 < 0x030402) */ 2234#endif \
2235 /* !MHD_WINSOCK_SOCKETS && !MHD_socket_nosignal_ && (GNUTLS_VERSION_NUMBER+0 < 0x030402) */
2232 2236
2233#ifdef MHD_TLSLIB_NEED_PUSH_FUNC 2237#ifdef MHD_TLSLIB_NEED_PUSH_FUNC
2234/** 2238/**
@@ -3379,7 +3383,8 @@ MHD_cleanup_connections (struct MHD_Daemon *daemon)
3379 this is not true as if we fail to do manually remove it, 3383 this is not true as if we fail to do manually remove it,
3380 we are still seeing an event for this fd in epoll, 3384 we are still seeing an event for this fd in epoll,
3381 causing grief (use-after-free...) --- at least on my 3385 causing grief (use-after-free...) --- at least on my
3382 system. */if (0 != epoll_ctl (daemon->epoll_fd, 3386 system. *///
3387 if (0 != epoll_ctl (daemon->epoll_fd,
3383 EPOLL_CTL_DEL, 3388 EPOLL_CTL_DEL,
3384 pos->socket_fd, 3389 pos->socket_fd,
3385 NULL)) 3390 NULL))
@@ -3831,9 +3836,9 @@ MHD_select (struct MHD_Daemon *daemon,
3831 return MHD_NO; 3836 return MHD_NO;
3832 } 3837 }
3833 if (MHD_NO != internal_run_from_select (daemon, 3838 if (MHD_NO != internal_run_from_select (daemon,
3834 &rs, 3839 &rs,
3835 &ws, 3840 &ws,
3836 &es)) 3841 &es))
3837 return (MHD_NO == err_state) ? MHD_YES : MHD_NO; 3842 return (MHD_NO == err_state) ? MHD_YES : MHD_NO;
3838 return MHD_NO; 3843 return MHD_NO;
3839} 3844}
@@ -3920,7 +3925,7 @@ MHD_poll_all (struct MHD_Daemon *daemon,
3920 timeout = 0; 3925 timeout = 0;
3921 else if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) || 3926 else if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) ||
3922 (MHD_NO == MHD_get_timeout (daemon, 3927 (MHD_NO == MHD_get_timeout (daemon,
3923 &ltimeout)) ) 3928 &ltimeout)) )
3924 timeout = -1; 3929 timeout = -1;
3925 else 3930 else
3926 timeout = (ltimeout > INT_MAX) ? INT_MAX : (int) ltimeout; 3931 timeout = (ltimeout > INT_MAX) ? INT_MAX : (int) ltimeout;
@@ -4000,9 +4005,9 @@ MHD_poll_all (struct MHD_Daemon *daemon,
4000 prev = pos->prev; 4005 prev = pos->prev;
4001 /* first, sanity checks */ 4006 /* first, sanity checks */
4002 if (i >= num_connections) 4007 if (i >= num_connections)
4003 break; /* connection list changed somehow, retry later ... */ 4008 break; /* connection list changed somehow, retry later ... */
4004 if (p[poll_server + i].fd != pos->socket_fd) 4009 if (p[poll_server + i].fd != pos->socket_fd)
4005 continue; /* fd mismatch, something else happened, retry later ... */ 4010 continue; /* fd mismatch, something else happened, retry later ... */
4006 call_handlers (pos, 4011 call_handlers (pos,
4007 0 != (p[poll_server + i].revents & POLLIN), 4012 0 != (p[poll_server + i].revents & POLLIN),
4008 0 != (p[poll_server + i].revents & POLLOUT), 4013 0 != (p[poll_server + i].revents & POLLOUT),
@@ -4267,22 +4272,26 @@ run_epoll_for_upgrade (struct MHD_Daemon *daemon)
4267 4272
4268 /* Update ueh state based on what is ready according to epoll() */ 4273 /* Update ueh state based on what is ready according to epoll() */
4269 if (0 != (events[i].events & EPOLLIN)) 4274 if (0 != (events[i].events & EPOLLIN))
4275 {
4270 ueh->celi |= MHD_EPOLL_STATE_READ_READY; 4276 ueh->celi |= MHD_EPOLL_STATE_READ_READY;
4277 }
4271 if (0 != (events[i].events & EPOLLOUT)) 4278 if (0 != (events[i].events & EPOLLOUT))
4279 {
4272 ueh->celi |= MHD_EPOLL_STATE_WRITE_READY; 4280 ueh->celi |= MHD_EPOLL_STATE_WRITE_READY;
4281 }
4273 if (0 != (events[i].events & EPOLLHUP)) 4282 if (0 != (events[i].events & EPOLLHUP))
4283 {
4274 ueh->celi |= MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_WRITE_READY; 4284 ueh->celi |= MHD_EPOLL_STATE_READ_READY | MHD_EPOLL_STATE_WRITE_READY;
4285 }
4275 4286
4276 if ( (0 == (ueh->celi & MHD_EPOLL_STATE_ERROR)) && 4287 if ( (0 == (ueh->celi & MHD_EPOLL_STATE_ERROR)) &&
4277 (0 != (events[i].events & (EPOLLERR | EPOLLPRI))) ) 4288 (0 != (events[i].events & (EPOLLERR | EPOLLPRI))) )
4278 { 4289 {
4279 /* Process new error state only one time 4290 /* Process new error state only one time and avoid continuously
4280 * and avoid continuously marking this connection 4291 * marking this connection as 'ready'. */
4281 * as 'ready'. */
4282 ueh->celi |= MHD_EPOLL_STATE_ERROR; 4292 ueh->celi |= MHD_EPOLL_STATE_ERROR;
4283 new_err_state = true; 4293 new_err_state = true;
4284 } 4294 }
4285
4286 if (! urh->in_eready_list) 4295 if (! urh->in_eready_list)
4287 { 4296 {
4288 if (new_err_state || 4297 if (new_err_state ||
@@ -4447,7 +4456,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
4447 if (MHD_NO != may_block) 4456 if (MHD_NO != may_block)
4448 { 4457 {
4449 if (MHD_NO != MHD_get_timeout (daemon, 4458 if (MHD_NO != MHD_get_timeout (daemon,
4450 &timeout_ll)) 4459 &timeout_ll))
4451 { 4460 {
4452 if (timeout_ll >= (MHD_UNSIGNED_LONG_LONG) INT_MAX) 4461 if (timeout_ll >= (MHD_UNSIGNED_LONG_LONG) INT_MAX)
4453 timeout_ms = INT_MAX; 4462 timeout_ms = INT_MAX;
@@ -5406,10 +5415,10 @@ parse_options_va (struct MHD_Daemon *daemon,
5406 case MHD_OPTION_CONNECTION_MEMORY_INCREMENT: 5415 case MHD_OPTION_CONNECTION_MEMORY_INCREMENT:
5407 case MHD_OPTION_THREAD_STACK_SIZE: 5416 case MHD_OPTION_THREAD_STACK_SIZE:
5408 if (MHD_NO == parse_options (daemon, 5417 if (MHD_NO == parse_options (daemon,
5409 servaddr, 5418 servaddr,
5410 opt, 5419 opt,
5411 (size_t) oa[i].value, 5420 (size_t) oa[i].value,
5412 MHD_OPTION_END)) 5421 MHD_OPTION_END))
5413 return MHD_NO; 5422 return MHD_NO;
5414 break; 5423 break;
5415 /* all options taking 'unsigned int' */ 5424 /* all options taking 'unsigned int' */
@@ -5423,39 +5432,39 @@ parse_options_va (struct MHD_Daemon *daemon,
5423 case MHD_OPTION_LISTEN_BACKLOG_SIZE: 5432 case MHD_OPTION_LISTEN_BACKLOG_SIZE:
5424 case MHD_OPTION_SERVER_INSANITY: 5433 case MHD_OPTION_SERVER_INSANITY:
5425 if (MHD_NO == parse_options (daemon, 5434 if (MHD_NO == parse_options (daemon,
5426 servaddr, 5435 servaddr,
5427 opt, 5436 opt,
5428 (unsigned int) oa[i].value, 5437 (unsigned int) oa[i].value,
5429 MHD_OPTION_END)) 5438 MHD_OPTION_END))
5430 return MHD_NO; 5439 return MHD_NO;
5431 break; 5440 break;
5432 /* all options taking 'enum' */ 5441 /* all options taking 'enum' */
5433#ifdef HTTPS_SUPPORT 5442#ifdef HTTPS_SUPPORT
5434 case MHD_OPTION_HTTPS_CRED_TYPE: 5443 case MHD_OPTION_HTTPS_CRED_TYPE:
5435 if (MHD_NO == parse_options (daemon, 5444 if (MHD_NO == parse_options (daemon,
5436 servaddr, 5445 servaddr,
5437 opt, 5446 opt,
5438 (gnutls_credentials_type_t) oa[i].value, 5447 (gnutls_credentials_type_t) oa[i].value,
5439 MHD_OPTION_END)) 5448 MHD_OPTION_END))
5440 return MHD_NO; 5449 return MHD_NO;
5441 break; 5450 break;
5442#endif /* HTTPS_SUPPORT */ 5451#endif /* HTTPS_SUPPORT */
5443 /* all options taking 'MHD_socket' */ 5452 /* all options taking 'MHD_socket' */
5444 case MHD_OPTION_LISTEN_SOCKET: 5453 case MHD_OPTION_LISTEN_SOCKET:
5445 if (MHD_NO == parse_options (daemon, 5454 if (MHD_NO == parse_options (daemon,
5446 servaddr, 5455 servaddr,
5447 opt, 5456 opt,
5448 (MHD_socket) oa[i].value, 5457 (MHD_socket) oa[i].value,
5449 MHD_OPTION_END)) 5458 MHD_OPTION_END))
5450 return MHD_NO; 5459 return MHD_NO;
5451 break; 5460 break;
5452 /* all options taking 'int' */ 5461 /* all options taking 'int' */
5453 case MHD_OPTION_STRICT_FOR_CLIENT: 5462 case MHD_OPTION_STRICT_FOR_CLIENT:
5454 if (MHD_NO == parse_options (daemon, 5463 if (MHD_NO == parse_options (daemon,
5455 servaddr, 5464 servaddr,
5456 opt, 5465 opt,
5457 (int) oa[i].value, 5466 (int) oa[i].value,
5458 MHD_OPTION_END)) 5467 MHD_OPTION_END))
5459 return MHD_NO; 5468 return MHD_NO;
5460 break; 5469 break;
5461 /* all options taking one pointer */ 5470 /* all options taking one pointer */
@@ -5470,10 +5479,10 @@ parse_options_va (struct MHD_Daemon *daemon,
5470 case MHD_OPTION_HTTPS_CERT_CALLBACK: 5479 case MHD_OPTION_HTTPS_CERT_CALLBACK:
5471 case MHD_OPTION_HTTPS_CERT_CALLBACK2: 5480 case MHD_OPTION_HTTPS_CERT_CALLBACK2:
5472 if (MHD_NO == parse_options (daemon, 5481 if (MHD_NO == parse_options (daemon,
5473 servaddr, 5482 servaddr,
5474 opt, 5483 opt,
5475 oa[i].ptr_value, 5484 oa[i].ptr_value,
5476 MHD_OPTION_END)) 5485 MHD_OPTION_END))
5477 return MHD_NO; 5486 return MHD_NO;
5478 break; 5487 break;
5479 /* all options taking two pointers */ 5488 /* all options taking two pointers */
@@ -5484,21 +5493,21 @@ parse_options_va (struct MHD_Daemon *daemon,
5484 case MHD_OPTION_UNESCAPE_CALLBACK: 5493 case MHD_OPTION_UNESCAPE_CALLBACK:
5485 case MHD_OPTION_GNUTLS_PSK_CRED_HANDLER: 5494 case MHD_OPTION_GNUTLS_PSK_CRED_HANDLER:
5486 if (MHD_NO == parse_options (daemon, 5495 if (MHD_NO == parse_options (daemon,
5487 servaddr, 5496 servaddr,
5488 opt, 5497 opt,
5489 (void *) oa[i].value, 5498 (void *) oa[i].value,
5490 oa[i].ptr_value, 5499 oa[i].ptr_value,
5491 MHD_OPTION_END)) 5500 MHD_OPTION_END))
5492 return MHD_NO; 5501 return MHD_NO;
5493 break; 5502 break;
5494 /* options taking size_t-number followed by pointer */ 5503 /* options taking size_t-number followed by pointer */
5495 case MHD_OPTION_DIGEST_AUTH_RANDOM: 5504 case MHD_OPTION_DIGEST_AUTH_RANDOM:
5496 if (MHD_NO == parse_options (daemon, 5505 if (MHD_NO == parse_options (daemon,
5497 servaddr, 5506 servaddr,
5498 opt, 5507 opt,
5499 (size_t) oa[i].value, 5508 (size_t) oa[i].value,
5500 oa[i].ptr_value, 5509 oa[i].ptr_value,
5501 MHD_OPTION_END)) 5510 MHD_OPTION_END))
5502 return MHD_NO; 5511 return MHD_NO;
5503 break; 5512 break;
5504 default: 5513 default:
@@ -5761,7 +5770,7 @@ MHD_start_daemon_va (unsigned int flags,
5761#ifdef HAVE_POLL 5770#ifdef HAVE_POLL
5762 *pflags |= MHD_USE_POLL; 5771 *pflags |= MHD_USE_POLL;
5763#else /* ! HAVE_POLL */ 5772#else /* ! HAVE_POLL */
5764 /* use select() - do not modify flags */ 5773 /* use select() - do not modify flags */
5765#endif /* ! HAVE_POLL */ 5774#endif /* ! HAVE_POLL */
5766 } 5775 }
5767 else if (0 != (*pflags & MHD_USE_INTERNAL_POLLING_THREAD)) 5776 else if (0 != (*pflags & MHD_USE_INTERNAL_POLLING_THREAD))
@@ -5772,7 +5781,7 @@ MHD_start_daemon_va (unsigned int flags,
5772#elif defined(HAVE_POLL) 5781#elif defined(HAVE_POLL)
5773 *pflags |= MHD_USE_POLL; 5782 *pflags |= MHD_USE_POLL;
5774#else /* !HAVE_POLL && !EPOLL_SUPPORT */ 5783#else /* !HAVE_POLL && !EPOLL_SUPPORT */
5775 /* use select() - do not modify flags */ 5784 /* use select() - do not modify flags */
5776#endif /* !HAVE_POLL && !EPOLL_SUPPORT */ 5785#endif /* !HAVE_POLL && !EPOLL_SUPPORT */
5777 } 5786 }
5778 else 5787 else
@@ -5781,7 +5790,7 @@ MHD_start_daemon_va (unsigned int flags,
5781#if defined(EPOLL_SUPPORT) 5790#if defined(EPOLL_SUPPORT)
5782 *pflags |= MHD_USE_EPOLL; 5791 *pflags |= MHD_USE_EPOLL;
5783#else /* ! EPOLL_SUPPORT */ 5792#else /* ! EPOLL_SUPPORT */
5784 /* use select() - do not modify flags */ 5793 /* use select() - do not modify flags */
5785#endif /* ! EPOLL_SUPPORT */ 5794#endif /* ! EPOLL_SUPPORT */
5786 } 5795 }
5787 } 5796 }
@@ -5866,8 +5875,8 @@ MHD_start_daemon_va (unsigned int flags,
5866 5875
5867 5876
5868 if (MHD_NO == parse_options_va (daemon, 5877 if (MHD_NO == parse_options_va (daemon,
5869 &servaddr, 5878 &servaddr,
5870 ap)) 5879 ap))
5871 { 5880 {
5872#ifdef HTTPS_SUPPORT 5881#ifdef HTTPS_SUPPORT
5873 if ( (0 != (*pflags & MHD_USE_TLS)) && 5882 if ( (0 != (*pflags & MHD_USE_TLS)) &&
@@ -6057,11 +6066,11 @@ MHD_start_daemon_va (unsigned int flags,
6057#endif 6066#endif
6058 } 6067 }
6059#endif /* ! MHD_WINSOCK_SOCKETS */ 6068#endif /* ! MHD_WINSOCK_SOCKETS */
6060 /* Use SO_REUSEADDR on Windows and SO_REUSEPORT on most platforms. 6069 /* Use SO_REUSEADDR on Windows and SO_REUSEPORT on most platforms.
6061 * Fail if SO_REUSEPORT is not defined or setsockopt fails. 6070 * Fail if SO_REUSEPORT is not defined or setsockopt fails.
6062 */ 6071 */
6063 /* SO_REUSEADDR on W32 has the same semantics 6072 /* SO_REUSEADDR on W32 has the same semantics
6064 as SO_REUSEPORT on BSD/Linux */ 6073 as SO_REUSEPORT on BSD/Linux */
6065#if defined(MHD_WINSOCK_SOCKETS) || defined(SO_REUSEPORT) 6074#if defined(MHD_WINSOCK_SOCKETS) || defined(SO_REUSEPORT)
6066 if (0 > setsockopt (listen_fd, 6075 if (0 > setsockopt (listen_fd,
6067 SOL_SOCKET, 6076 SOL_SOCKET,
@@ -6081,8 +6090,8 @@ MHD_start_daemon_va (unsigned int flags,
6081 goto free_and_fail; 6090 goto free_and_fail;
6082 } 6091 }
6083#else /* !MHD_WINSOCK_SOCKETS && !SO_REUSEPORT */ 6092#else /* !MHD_WINSOCK_SOCKETS && !SO_REUSEPORT */
6084 /* we're supposed to allow address:port re-use, but 6093 /* we're supposed to allow address:port re-use, but
6085 on this platform we cannot; fail hard */ 6094 on this platform we cannot; fail hard */
6086#ifdef HAVE_MESSAGES 6095#ifdef HAVE_MESSAGES
6087 MHD_DLOG (daemon, 6096 MHD_DLOG (daemon,
6088 _ ( 6097 _ (
diff --git a/src/microhttpd/digestauth.c b/src/microhttpd/digestauth.c
index c3260d1b..3949b268 100644
--- a/src/microhttpd/digestauth.c
+++ b/src/microhttpd/digestauth.c
@@ -604,9 +604,9 @@ check_nonce_nc (struct MHD_Connection *connection,
604 } 604 }
605 /* Nonce is larger, shift bitmask and bump limit */ 605 /* Nonce is larger, shift bitmask and bump limit */
606 if (64 > nc - nn->nc) 606 if (64 > nc - nn->nc)
607 nn->nmask <<= (nc - nn->nc); /* small jump, less than mask width */ 607 nn->nmask <<= (nc - nn->nc); /* small jump, less than mask width */
608 else 608 else
609 nn->nmask = 0; /* big jump, unset all bits in the mask */ 609 nn->nmask = 0; /* big jump, unset all bits in the mask */
610 nn->nc = nc; 610 nn->nc = nc;
611#if defined(MHD_USE_POSIX_THREADS) || defined(MHD_USE_W32_THREADS) 611#if defined(MHD_USE_POSIX_THREADS) || defined(MHD_USE_W32_THREADS)
612 MHD_mutex_unlock_chk_ (&daemon->nnc_lock); 612 MHD_mutex_unlock_chk_ (&daemon->nnc_lock);
diff --git a/src/microhttpd/internal.c b/src/microhttpd/internal.c
index 33542c4a..c5ffa856 100644
--- a/src/microhttpd/internal.c
+++ b/src/microhttpd/internal.c
@@ -214,11 +214,11 @@ MHD_parse_arguments_ (struct MHD_Connection *connection,
214 connection, 214 connection,
215 args); 215 args);
216 if (MHD_NO == cb (connection, 216 if (MHD_NO == cb (connection,
217 args, 217 args,
218 key_len, 218 key_len,
219 NULL, 219 NULL,
220 0, 220 0,
221 kind)) 221 kind))
222 return MHD_NO; 222 return MHD_NO;
223 (*num_headers)++; 223 (*num_headers)++;
224 break; 224 break;
@@ -235,11 +235,11 @@ MHD_parse_arguments_ (struct MHD_Connection *connection,
235 connection, 235 connection,
236 equals); 236 equals);
237 if (MHD_NO == cb (connection, 237 if (MHD_NO == cb (connection,
238 args, 238 args,
239 key_len, 239 key_len,
240 equals, 240 equals,
241 value_len, 241 value_len,
242 kind)) 242 kind))
243 return MHD_NO; 243 return MHD_NO;
244 (*num_headers)++; 244 (*num_headers)++;
245 break; 245 break;
@@ -256,11 +256,11 @@ MHD_parse_arguments_ (struct MHD_Connection *connection,
256 connection, 256 connection,
257 args); 257 args);
258 if (MHD_NO == cb (connection, 258 if (MHD_NO == cb (connection,
259 args, 259 args,
260 key_len, 260 key_len,
261 NULL, 261 NULL,
262 0, 262 0,
263 kind)) 263 kind))
264 return MHD_NO; 264 return MHD_NO;
265 /* continue with 'bar' */ 265 /* continue with 'bar' */
266 (*num_headers)++; 266 (*num_headers)++;
@@ -280,11 +280,11 @@ MHD_parse_arguments_ (struct MHD_Connection *connection,
280 connection, 280 connection,
281 equals); 281 equals);
282 if (MHD_NO == cb (connection, 282 if (MHD_NO == cb (connection,
283 args, 283 args,
284 key_len, 284 key_len,
285 equals, 285 equals,
286 value_len, 286 value_len,
287 kind)) 287 kind))
288 return MHD_NO; 288 return MHD_NO;
289 (*num_headers)++; 289 (*num_headers)++;
290 args = amper; 290 args = amper;
diff --git a/src/microhttpd/internal.h b/src/microhttpd/internal.h
index cfaca9af..e2b468cb 100644
--- a/src/microhttpd/internal.h
+++ b/src/microhttpd/internal.h
@@ -96,7 +96,7 @@
96 MHD_PANIC (_ ("Failed to close FD.\n")); \ 96 MHD_PANIC (_ ("Failed to close FD.\n")); \
97} while (0) 97} while (0)
98 98
99/* 99/*
100#define EXTRA_CHECKS _MHD_MACRO_NO 100#define EXTRA_CHECKS _MHD_MACRO_NO
101 * Not used. Behaviour is controlled by _DEBUG/NDEBUG macros. 101 * Not used. Behaviour is controlled by _DEBUG/NDEBUG macros.
102 */ 102 */
diff --git a/src/microhttpd/md5.h b/src/microhttpd/md5.h
index f81d91cb..6c2a33f5 100644
--- a/src/microhttpd/md5.h
+++ b/src/microhttpd/md5.h
@@ -28,7 +28,7 @@
28 28
29struct MD5Context 29struct MD5Context
30{ 30{
31 uint32_t state[4]; /* state */ 31 uint32_t state[4]; /* state */
32 uint64_t count; /* number of bytes, mod 2^64 */ 32 uint64_t count; /* number of bytes, mod 2^64 */
33 uint8_t buffer[MD5_BLOCK_SIZE]; /* input buffer */ 33 uint8_t buffer[MD5_BLOCK_SIZE]; /* input buffer */
34}; 34};
diff --git a/src/microhttpd/memorypool.c b/src/microhttpd/memorypool.c
index 57e49cf0..a4207a92 100644
--- a/src/microhttpd/memorypool.c
+++ b/src/microhttpd/memorypool.c
@@ -336,10 +336,10 @@ MHD_pool_reallocate (struct MemoryPool *pool,
336 { /* "old" block is the last allocated block */ 336 { /* "old" block is the last allocated block */
337 const size_t new_apos = ROUND_TO_ALIGN (old_offset + new_size); 337 const size_t new_apos = ROUND_TO_ALIGN (old_offset + new_size);
338 if (! shrinking) 338 if (! shrinking)
339 { /* Grow in-place, check for enough space. */ 339 { /* Grow in-place, check for enough space. */
340 if ( (new_apos > pool->end) || 340 if ( (new_apos > pool->end) ||
341 (new_apos < pool->pos) ) /* Value wrap */ 341 (new_apos < pool->pos) ) /* Value wrap */
342 return NULL; /* No space */ 342 return NULL; /* No space */
343 } 343 }
344 /* Resized in-place */ 344 /* Resized in-place */
345 pool->pos = new_apos; 345 pool->pos = new_apos;
diff --git a/src/microhttpd/mhd_mono_clock.c b/src/microhttpd/mhd_mono_clock.c
index fa548f6e..0bd9984e 100644
--- a/src/microhttpd/mhd_mono_clock.c
+++ b/src/microhttpd/mhd_mono_clock.c
@@ -254,8 +254,8 @@ MHD_monotonic_sec_counter_init (void)
254 LARGE_INTEGER freq; 254 LARGE_INTEGER freq;
255 LARGE_INTEGER perf_counter; 255 LARGE_INTEGER perf_counter;
256 256
257 QueryPerformanceFrequency (&freq); /* never fail on XP and later */ 257 QueryPerformanceFrequency (&freq); /* never fail on XP and later */
258 QueryPerformanceCounter (&perf_counter); /* never fail on XP and later */ 258 QueryPerformanceCounter (&perf_counter); /* never fail on XP and later */
259 perf_freq = freq.QuadPart; 259 perf_freq = freq.QuadPart;
260 perf_start = perf_counter.QuadPart; 260 perf_start = perf_counter.QuadPart;
261 mono_clock_source = _MHD_CLOCK_PERFCOUNTER; 261 mono_clock_source = _MHD_CLOCK_PERFCOUNTER;
diff --git a/src/microhttpd/mhd_send.c b/src/microhttpd/mhd_send.c
index 1ff45231..f366ef67 100644
--- a/src/microhttpd/mhd_send.c
+++ b/src/microhttpd/mhd_send.c
@@ -405,7 +405,11 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
405 (0 == buffer_size) && 405 (0 == buffer_size) &&
406 connection->sk_cork_on) 406 connection->sk_cork_on)
407 { 407 {
408 (void) gnutls_record_uncork (connection->tls_session, 0); 408 int err;
409
410 err = gnutls_record_uncork (connection->tls_session, 0);
411 if (0 > err)
412 return ret;
409 connection->sk_cork_on = false; 413 connection->sk_cork_on = false;
410 } 414 }
411 return ret; 415 return ret;
@@ -434,6 +438,9 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
434 msg.msg_iovlen = 2; 438 msg.msg_iovlen = 2;
435 439
436 ret = sendmsg (s, &msg, MAYBE_MSG_NOSIGNAL); 440 ret = sendmsg (s, &msg, MAYBE_MSG_NOSIGNAL);
441 if ( (-1 == ret) &&
442 (EAGAIN == errno) )
443 return MHD_ERR_AGAIN_;
437 } 444 }
438#elif HAVE_WRITEV 445#elif HAVE_WRITEV
439 { 446 {
@@ -441,6 +448,9 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
441 448
442 iovcnt = sizeof (vector) / sizeof (struct iovec); 449 iovcnt = sizeof (vector) / sizeof (struct iovec);
443 ret = writev (s, vector, iovcnt); 450 ret = writev (s, vector, iovcnt);
451 if ( (-1 == ret) &&
452 (EAGAIN == errno) )
453 return MHD_ERR_AGAIN_;
444 } 454 }
445#endif 455#endif
446 456
diff --git a/src/microhttpd/mhd_threads.c b/src/microhttpd/mhd_threads.c
index 6e96f860..aa0ad571 100644
--- a/src/microhttpd/mhd_threads.c
+++ b/src/microhttpd/mhd_threads.c
@@ -49,7 +49,8 @@
49#if defined(HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD) || \ 49#if defined(HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD) || \
50 defined(HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI) 50 defined(HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI)
51# define MHD_USE_THREAD_ATTR_SETNAME 1 51# define MHD_USE_THREAD_ATTR_SETNAME 1
52#endif /* HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD || HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI */ 52#endif \
53 /* HAVE_PTHREAD_ATTR_SETNAME_NP_NETBSD || HAVE_PTHREAD_ATTR_SETNAME_NP_IBMI */
53 54
54#if defined(HAVE_PTHREAD_SETNAME_NP_GNU) || \ 55#if defined(HAVE_PTHREAD_SETNAME_NP_GNU) || \
55 defined(HAVE_PTHREAD_SET_NAME_NP_FREEBSD) \ 56 defined(HAVE_PTHREAD_SET_NAME_NP_FREEBSD) \
diff --git a/src/microhttpd/postprocessor.c b/src/microhttpd/postprocessor.c
index 7cffeaea..eda1ae51 100644
--- a/src/microhttpd/postprocessor.c
+++ b/src/microhttpd/postprocessor.c
@@ -801,13 +801,13 @@ find_boundary (struct MHD_PostProcessor *pp,
801 '-', 801 '-',
802 pp->buffer_pos); 802 pp->buffer_pos);
803 if (NULL == dash) 803 if (NULL == dash)
804 (*ioffptr) += pp->buffer_pos; /* skip entire buffer */ 804 (*ioffptr) += pp->buffer_pos; /* skip entire buffer */
805 else if (dash == buf) 805 else if (dash == buf)
806 (*ioffptr)++; /* at least skip one byte */ 806 (*ioffptr)++; /* at least skip one byte */
807 else 807 else
808 (*ioffptr) += dash - buf; /* skip to first possible boundary */ 808 (*ioffptr) += dash - buf; /* skip to first possible boundary */
809 } 809 }
810 return MHD_NO; /* expected boundary */ 810 return MHD_NO; /* expected boundary */
811 } 811 }
812 /* remove boundary from buffer */ 812 /* remove boundary from buffer */
813 (*ioffptr) += 2 + blen; 813 (*ioffptr) += 2 + blen;
diff --git a/src/microhttpd/response.c b/src/microhttpd/response.c
index 141372b9..9a21925a 100644
--- a/src/microhttpd/response.c
+++ b/src/microhttpd/response.c
@@ -263,9 +263,9 @@ MHD_get_response_headers (struct MHD_Response *response,
263 numHeaders++; 263 numHeaders++;
264 if ((NULL != iterator) && 264 if ((NULL != iterator) &&
265 (MHD_NO == iterator (iterator_cls, 265 (MHD_NO == iterator (iterator_cls,
266 pos->kind, 266 pos->kind,
267 pos->header, 267 pos->header,
268 pos->value))) 268 pos->value)))
269 break; 269 break;
270 } 270 }
271 return numHeaders; 271 return numHeaders;
@@ -919,7 +919,11 @@ MHD_upgrade_action (struct MHD_UpgradeResponseHandle *urh,
919#ifdef HTTPS_SUPPORT 919#ifdef HTTPS_SUPPORT
920 if (0 != (daemon->options & MHD_USE_TLS) ) 920 if (0 != (daemon->options & MHD_USE_TLS) )
921 { 921 {
922 gnutls_record_uncork (connection->tls_session, 0); 922 int err;
923
924 err = gnutls_record_uncork (connection->tls_session, 0);
925 if (0 > err)
926 return MHD_NO;
923 connection->sk_cork_on = false; 927 connection->sk_cork_on = false;
924 return MHD_YES; 928 return MHD_YES;
925 } 929 }
diff --git a/src/microhttpd/sha256.h b/src/microhttpd/sha256.h
index f4c84e2c..4a90c233 100644
--- a/src/microhttpd/sha256.h
+++ b/src/microhttpd/sha256.h
@@ -55,7 +55,7 @@ struct sha256_ctx
55{ 55{
56 uint32_t H[_SHA256_DIGEST_LENGTH]; /**< Intermediate hash value / digest at end of calculation */ 56 uint32_t H[_SHA256_DIGEST_LENGTH]; /**< Intermediate hash value / digest at end of calculation */
57 uint64_t count; /**< number of bytes, mod 2^64 */ 57 uint64_t count; /**< number of bytes, mod 2^64 */
58 uint8_t buffer[SHA256_BLOCK_SIZE]; /**< SHA256 input data buffer */ 58 uint8_t buffer[SHA256_BLOCK_SIZE]; /**< SHA256 input data buffer */
59}; 59};
60 60
61/** 61/**
diff --git a/src/microhttpd/test_daemon.c b/src/microhttpd/test_daemon.c
index caeaea3d..14a77832 100644
--- a/src/microhttpd/test_daemon.c
+++ b/src/microhttpd/test_daemon.c
@@ -83,9 +83,9 @@ ahc_nothing (void *cls,
83 const char *upload_data, size_t *upload_data_size, 83 const char *upload_data, size_t *upload_data_size,
84 void **unused) 84 void **unused)
85{ 85{
86 (void) cls; (void) connection; (void) url; /* Unused. Silent compiler warning. */ 86 (void) cls; (void) connection; (void) url; /* Unused. Silent compiler warning. */
87 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 87 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
88 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */ 88 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */
89 89
90 return MHD_NO; 90 return MHD_NO;
91} 91}
diff --git a/src/microhttpd/test_postprocessor_large.c b/src/microhttpd/test_postprocessor_large.c
index 678de808..38fe650b 100644
--- a/src/microhttpd/test_postprocessor_large.c
+++ b/src/microhttpd/test_postprocessor_large.c
@@ -43,7 +43,7 @@ value_checker (void *cls,
43 const char *data, uint64_t off, size_t size) 43 const char *data, uint64_t off, size_t size)
44{ 44{
45 unsigned int *pos = cls; 45 unsigned int *pos = cls;
46 (void) kind; (void) key; (void) filename; (void) content_type; /* Unused. Silent compiler warning. */ 46 (void) kind; (void) key; (void) filename; (void) content_type; /* Unused. Silent compiler warning. */
47 (void) transfer_encoding; (void) data; (void) off; /* Unused. Silent compiler warning. */ 47 (void) transfer_encoding; (void) data; (void) off; /* Unused. Silent compiler warning. */
48#if 0 48#if 0
49 fprintf (stderr, 49 fprintf (stderr,
diff --git a/src/microhttpd/test_start_stop.c b/src/microhttpd/test_start_stop.c
index 79d80d24..9cd3abf2 100644
--- a/src/microhttpd/test_start_stop.c
+++ b/src/microhttpd/test_start_stop.c
@@ -44,9 +44,9 @@ ahc_echo (void *cls,
44 const char *upload_data, size_t *upload_data_size, 44 const char *upload_data, size_t *upload_data_size,
45 void **unused) 45 void **unused)
46{ 46{
47 (void) cls; (void) connection; (void) url; /* Unused. Silent compiler warning. */ 47 (void) cls; (void) connection; (void) url; /* Unused. Silent compiler warning. */
48 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 48 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
49 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */ 49 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */
50 50
51 return MHD_NO; 51 return MHD_NO;
52} 52}
diff --git a/src/microhttpd/test_str.c b/src/microhttpd/test_str.c
index a2f357b4..1e140cb6 100644
--- a/src/microhttpd/test_str.c
+++ b/src/microhttpd/test_str.c
@@ -50,9 +50,9 @@ static const char *const locale_names[] = {
50 "C", 50 "C",
51 "", /* System default locale */ 51 "", /* System default locale */
52#if defined(_WIN32) && ! defined(__CYGWIN__) 52#if defined(_WIN32) && ! defined(__CYGWIN__)
53 ".OCP", /* W32 system default OEM code page */ 53 ".OCP", /* W32 system default OEM code page */
54 ".ACP", /* W32 system default ANSI code page */ 54 ".ACP", /* W32 system default ANSI code page */
55 ".65001", /* UTF-8 */ 55 ".65001", /* UTF-8 */
56 ".437", 56 ".437",
57 ".850", 57 ".850",
58 ".857", 58 ".857",
@@ -455,50 +455,50 @@ static const struct two_neq_strs neq_strings[] = {
455 {D_STR_W_LEN ("zyxwvutsrqponwMLKJIHGFEDCBA"), D_STR_W_LEN ( 455 {D_STR_W_LEN ("zyxwvutsrqponwMLKJIHGFEDCBA"), D_STR_W_LEN (
456 "ZYXWVUTSRQPON%mlkjihgfedcba"), 13}, 456 "ZYXWVUTSRQPON%mlkjihgfedcba"), 13},
457 457
458 {D_STR_W_LEN ("S\xbdur veulent plus d'\xbdufs."), /* "Sœur veulent plus d'œufs." in ISO-8859-15 */ 458 {D_STR_W_LEN ("S\xbdur veulent plus d'\xbdufs."), /* "Sœur veulent plus d'œufs." in ISO-8859-15 */
459 D_STR_W_LEN ("S\xbcUR VEULENT PLUS D'\xbcUFS."), 1}, /* "SŒUR VEULENT PLUS D'ŒUFS." in ISO-8859-15 */ 459 D_STR_W_LEN ("S\xbcUR VEULENT PLUS D'\xbcUFS."), 1}, /* "SŒUR VEULENT PLUS D'ŒUFS." in ISO-8859-15 */
460 {D_STR_W_LEN ("S\x9cur veulent plus d'\x9cufs."), /* "Sœur veulent plus d'œufs." in CP1252 */ 460 {D_STR_W_LEN ("S\x9cur veulent plus d'\x9cufs."), /* "Sœur veulent plus d'œufs." in CP1252 */
461 D_STR_W_LEN ("S\x8cUR VEULENT PLUS D'\x8cUFS."), 1}, /* "SŒUR VEULENT PLUS D'ŒUFS." in CP1252 */ 461 D_STR_W_LEN ("S\x8cUR VEULENT PLUS D'\x8cUFS."), 1}, /* "SŒUR VEULENT PLUS D'ŒUFS." in CP1252 */
462 {D_STR_W_LEN ("S\xc5\x93ur veulent plus d'\xc5\x93ufs."), /* "Sœur veulent plus d'œufs." in UTF-8 */ 462 {D_STR_W_LEN ("S\xc5\x93ur veulent plus d'\xc5\x93ufs."), /* "Sœur veulent plus d'œufs." in UTF-8 */
463 D_STR_W_LEN ("S\xc5\x92UR VEULENT PLUS D'\xc5\x92UFS."), 2}, /* "SŒUR VEULENT PLUS D'ŒUFS." in UTF-8 */ 463 D_STR_W_LEN ("S\xc5\x92UR VEULENT PLUS D'\xc5\x92UFS."), 2}, /* "SŒUR VEULENT PLUS D'ŒUFS." in UTF-8 */
464 464
465 {D_STR_W_LEN ("Um ein sch\x94nes M\x84" "dchen zu k\x81ssen."), /* "Um ein schönes Mädchen zu küssen." in CP850 */ 465 {D_STR_W_LEN ("Um ein sch\x94nes M\x84" "dchen zu k\x81ssen."), /* "Um ein schönes Mädchen zu küssen." in CP850 */
466 D_STR_W_LEN ("UM EIN SCH\x99NES M\x8e" "DCHEN ZU K\x9aSSEN."), 10}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in CP850 */ 466 D_STR_W_LEN ("UM EIN SCH\x99NES M\x8e" "DCHEN ZU K\x9aSSEN."), 10}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in CP850 */
467 {D_STR_W_LEN ("Um ein sch\xf6nes M\xe4" "dchen zu k\xfcssen."), /* "Um ein schönes Mädchen zu küssen." in ISO-8859-1/ISO-8859-15/CP1250/CP1252 */ 467 {D_STR_W_LEN ("Um ein sch\xf6nes M\xe4" "dchen zu k\xfcssen."), /* "Um ein schönes Mädchen zu küssen." in ISO-8859-1/ISO-8859-15/CP1250/CP1252 */
468 D_STR_W_LEN ("UM EIN SCH\xd6NES M\xc4" "DCHEN ZU K\xdcSSEN."), 10}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in ISO-8859-1/ISO-8859-15/CP1250/CP1252 */ 468 D_STR_W_LEN ("UM EIN SCH\xd6NES M\xc4" "DCHEN ZU K\xdcSSEN."), 10}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in ISO-8859-1/ISO-8859-15/CP1250/CP1252 */
469 {D_STR_W_LEN ("Um ein sch\xc3\xb6nes M\xc3\xa4" "dchen zu k\xc3\xbcssen."), /* "Um ein schönes Mädchen zu küssen." in UTF-8 */ 469 {D_STR_W_LEN ("Um ein sch\xc3\xb6nes M\xc3\xa4" "dchen zu k\xc3\xbcssen."), /* "Um ein schönes Mädchen zu küssen." in UTF-8 */
470 D_STR_W_LEN ("UM EIN SCH\xc3\x96NES M\xc3\x84" "DCHEN ZU K\xc3\x9cSSEN."), 470 D_STR_W_LEN ("UM EIN SCH\xc3\x96NES M\xc3\x84" "DCHEN ZU K\xc3\x9cSSEN."),
471 11}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in UTF-8 */ 471 11}, /* "UM EIN SCHÖNES MÄDCHEN ZU KÜSSEN." in UTF-8 */
472 472
473 {D_STR_W_LEN ("\x98stanbul"), /* "İstanbul" in CP857 */ 473 {D_STR_W_LEN ("\x98stanbul"), /* "İstanbul" in CP857 */
474 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in CP857 */ 474 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in CP857 */
475 {D_STR_W_LEN ("\xddstanbul"), /* "İstanbul" in ISO-8859-9/CP1254 */ 475 {D_STR_W_LEN ("\xddstanbul"), /* "İstanbul" in ISO-8859-9/CP1254 */
476 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in ISO-8859-9/CP1254 */ 476 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in ISO-8859-9/CP1254 */
477 {D_STR_W_LEN ("\xc4\xb0stanbul"), /* "İstanbul" in UTF-8 */ 477 {D_STR_W_LEN ("\xc4\xb0stanbul"), /* "İstanbul" in UTF-8 */
478 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in UTF-8 */ 478 D_STR_W_LEN ("istanbul"), 0}, /* "istanbul" in UTF-8 */
479 {D_STR_W_LEN ("Diyarbak\x8dr"), /* "Diyarbakır" in CP857 */ 479 {D_STR_W_LEN ("Diyarbak\x8dr"), /* "Diyarbakır" in CP857 */
480 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in CP857 */ 480 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in CP857 */
481 {D_STR_W_LEN ("Diyarbak\xfdr"), /* "Diyarbakır" in ISO-8859-9/CP1254 */ 481 {D_STR_W_LEN ("Diyarbak\xfdr"), /* "Diyarbakır" in ISO-8859-9/CP1254 */
482 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in ISO-8859-9/CP1254 */ 482 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in ISO-8859-9/CP1254 */
483 {D_STR_W_LEN ("Diyarbak\xc4\xb1r"), /* "Diyarbakır" in UTF-8 */ 483 {D_STR_W_LEN ("Diyarbak\xc4\xb1r"), /* "Diyarbakır" in UTF-8 */
484 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in UTF-8 */ 484 D_STR_W_LEN ("DiyarbakIR"), 8}, /* "DiyarbakIR" in UTF-8 */
485 485
486 {D_STR_W_LEN ("\x92\xa5\xe1\xe2\xae\xa2\xa0\xef \x91\xe2\xe0\xae\xaa\xa0."), /* "Тестовая Строка." in CP866 */ 486 {D_STR_W_LEN ("\x92\xa5\xe1\xe2\xae\xa2\xa0\xef \x91\xe2\xe0\xae\xaa\xa0."), /* "Тестовая Строка." in CP866 */
487 D_STR_W_LEN ("\x92\x85\x91\x92\x8e\x82\x80\x9f \x91\x92\x90\x8e\x8a\x80."), 487 D_STR_W_LEN ("\x92\x85\x91\x92\x8e\x82\x80\x9f \x91\x92\x90\x8e\x8a\x80."),
488 1}, /* "ТЕСТОВАЯ СТРОКА." in CP866 */ 488 1}, /* "ТЕСТОВАЯ СТРОКА." in CP866 */
489 {D_STR_W_LEN ("\xd2\xe5\xf1\xf2\xee\xe2\xe0\xff \xd1\xf2\xf0\xee\xea\xe0."), /* "Тестовая Строка." in CP1251 */ 489 {D_STR_W_LEN ("\xd2\xe5\xf1\xf2\xee\xe2\xe0\xff \xd1\xf2\xf0\xee\xea\xe0."), /* "Тестовая Строка." in CP1251 */
490 D_STR_W_LEN ("\xd2\xc5\xd1\xd2\xce\xc2\xc0\xdf \xd1\xd2\xd0\xce\xca\xc0."), 490 D_STR_W_LEN ("\xd2\xc5\xd1\xd2\xce\xc2\xc0\xdf \xd1\xd2\xd0\xce\xca\xc0."),
491 1}, /* "ТЕСТОВАЯ СТРОКА." in CP1251 */ 491 1}, /* "ТЕСТОВАЯ СТРОКА." in CP1251 */
492 {D_STR_W_LEN ("\xf4\xc5\xd3\xd4\xcf\xd7\xc1\xd1 \xf3\xd4\xd2\xcf\xcb\xc1."), /* "Тестовая Строка." in KOI8-R */ 492 {D_STR_W_LEN ("\xf4\xc5\xd3\xd4\xcf\xd7\xc1\xd1 \xf3\xd4\xd2\xcf\xcb\xc1."), /* "Тестовая Строка." in KOI8-R */
493 D_STR_W_LEN ("\xf4\xe5\xf3\xf4\xef\xf7\xe1\xf1 \xf3\xf4\xf2\xef\xeb\xe1."), 493 D_STR_W_LEN ("\xf4\xe5\xf3\xf4\xef\xf7\xe1\xf1 \xf3\xf4\xf2\xef\xeb\xe1."),
494 1}, /* "ТЕСТОВАЯ СТРОКА." in KOI8-R */ 494 1}, /* "ТЕСТОВАЯ СТРОКА." in KOI8-R */
495 {D_STR_W_LEN ("\xc2\xd5\xe1\xe2\xde\xd2\xd0\xef \xc1\xe2\xe0\xde\xda\xd0."), /* "Тестовая Строка." in ISO-8859-5 */ 495 {D_STR_W_LEN ("\xc2\xd5\xe1\xe2\xde\xd2\xd0\xef \xc1\xe2\xe0\xde\xda\xd0."), /* "Тестовая Строка." in ISO-8859-5 */
496 D_STR_W_LEN ("\xc2\xb5\xc1\xc2\xbe\xb2\xb0\xcf \xc1\xc2\xc0\xbe\xba\xb0."), 496 D_STR_W_LEN ("\xc2\xb5\xc1\xc2\xbe\xb2\xb0\xcf \xc1\xc2\xc0\xbe\xba\xb0."),
497 1}, /* "ТЕСТОВАЯ СТРОКА." in ISO-8859-5 */ 497 1}, /* "ТЕСТОВАЯ СТРОКА." in ISO-8859-5 */
498 {D_STR_W_LEN ("\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82\xd0\xbe\xd0\xb2\xd0\xb0\xd1" 498 {D_STR_W_LEN ("\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82\xd0\xbe\xd0\xb2\xd0\xb0\xd1"
499 "\x8f \xd0\xa1\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0."), /* "Тестовая Строка." in UTF-8 */ 499 "\x8f \xd0\xa1\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0."), /* "Тестовая Строка." in UTF-8 */
500 D_STR_W_LEN ("\xd0\xa2\xd0\x95\xd0\xa1\xd0\xa2\xd0\x9e\xd0\x92\xd0\x90\xd0" 500 D_STR_W_LEN ("\xd0\xa2\xd0\x95\xd0\xa1\xd0\xa2\xd0\x9e\xd0\x92\xd0\x90\xd0"
501 "\xaf \xd0\xa1\xd0\xa2\xd0\xa0\xd0\x9e\xd0\x9a\xd0\x90."), 3} /* "ТЕСТОВАЯ СТРОКА." in UTF-8 */ 501 "\xaf \xd0\xa1\xd0\xa2\xd0\xa0\xd0\x9e\xd0\x9a\xd0\x90."), 3} /* "ТЕСТОВАЯ СТРОКА." in UTF-8 */
502}; 502};
503 503
504 504
@@ -900,15 +900,15 @@ static const struct str_with_value dstrs_w_values[] = {
900 {D_STR_W_LEN ("00000000000000000000000031295483"), 32, 31295483}, 900 {D_STR_W_LEN ("00000000000000000000000031295483"), 32, 31295483},
901 901
902 /* numbers below and above limits */ 902 /* numbers below and above limits */
903 {D_STR_W_LEN ("127"), 3, 127}, /* 0x7F, SCHAR_MAX */ 903 {D_STR_W_LEN ("127"), 3, 127}, /* 0x7F, SCHAR_MAX */
904 {D_STR_W_LEN ("128"), 3, 128}, /* 0x80, SCHAR_MAX+1 */ 904 {D_STR_W_LEN ("128"), 3, 128}, /* 0x80, SCHAR_MAX+1 */
905 {D_STR_W_LEN ("255"), 3, 255}, /* 0xFF, UCHAR_MAX */ 905 {D_STR_W_LEN ("255"), 3, 255}, /* 0xFF, UCHAR_MAX */
906 {D_STR_W_LEN ("256"), 3, 256}, /* 0x100, UCHAR_MAX+1 */ 906 {D_STR_W_LEN ("256"), 3, 256}, /* 0x100, UCHAR_MAX+1 */
907 {D_STR_W_LEN ("32767"), 5, 32767}, /* 0x7FFF, INT16_MAX */ 907 {D_STR_W_LEN ("32767"), 5, 32767}, /* 0x7FFF, INT16_MAX */
908 {D_STR_W_LEN ("32768"), 5, 32768}, /* 0x8000, INT16_MAX+1 */ 908 {D_STR_W_LEN ("32768"), 5, 32768}, /* 0x8000, INT16_MAX+1 */
909 {D_STR_W_LEN ("65535"), 5, 65535}, /* 0xFFFF, UINT16_MAX */ 909 {D_STR_W_LEN ("65535"), 5, 65535}, /* 0xFFFF, UINT16_MAX */
910 {D_STR_W_LEN ("65536"), 5, 65536}, /* 0x10000, UINT16_MAX+1 */ 910 {D_STR_W_LEN ("65536"), 5, 65536}, /* 0x10000, UINT16_MAX+1 */
911 {D_STR_W_LEN ("2147483647"), 10, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */ 911 {D_STR_W_LEN ("2147483647"), 10, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */
912 {D_STR_W_LEN ("2147483648"), 10, UINT64_C (2147483648)}, /* 0x80000000, INT32_MAX+1 */ 912 {D_STR_W_LEN ("2147483648"), 10, UINT64_C (2147483648)}, /* 0x80000000, INT32_MAX+1 */
913 {D_STR_W_LEN ("4294967295"), 10, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */ 913 {D_STR_W_LEN ("4294967295"), 10, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */
914 {D_STR_W_LEN ("4294967296"), 10, UINT64_C (4294967296)}, /* 0x100000000, UINT32_MAX+1 */ 914 {D_STR_W_LEN ("4294967296"), 10, UINT64_C (4294967296)}, /* 0x100000000, UINT32_MAX+1 */
@@ -968,14 +968,14 @@ const struct str_with_len str_ovflw[] = {
968const struct str_with_len str_no_num[] = { 968const struct str_with_len str_no_num[] = {
969 D_STR_W_LEN ("zero"), 969 D_STR_W_LEN ("zero"),
970 D_STR_W_LEN ("one"), 970 D_STR_W_LEN ("one"),
971 D_STR_W_LEN ("\xb9\xb2\xb3"), /* superscript "123" in ISO-8859-1/CP1252 */ 971 D_STR_W_LEN ("\xb9\xb2\xb3"), /* superscript "123" in ISO-8859-1/CP1252 */
972 D_STR_W_LEN ("\xc2\xb9\xc2\xb2\xc2\xb3"), /* superscript "123" in UTF-8 */ 972 D_STR_W_LEN ("\xc2\xb9\xc2\xb2\xc2\xb3"), /* superscript "123" in UTF-8 */
973 D_STR_W_LEN ("\xd9\xa1\xd9\xa2\xd9\xa3"), /* Arabic-Indic "١٢٣" in UTF-8 */ 973 D_STR_W_LEN ("\xd9\xa1\xd9\xa2\xd9\xa3"), /* Arabic-Indic "١٢٣" in UTF-8 */
974 D_STR_W_LEN ("\xdb\xb1\xdb\xb2\xdb\xb3"), /* Ext Arabic-Indic "۱۲۳" in UTF-8 */ 974 D_STR_W_LEN ("\xdb\xb1\xdb\xb2\xdb\xb3"), /* Ext Arabic-Indic "۱۲۳" in UTF-8 */
975 D_STR_W_LEN ("\xe0\xa5\xa7\xe0\xa5\xa8\xe0\xa5\xa9"), /* Devanagari "१२३" in UTF-8 */ 975 D_STR_W_LEN ("\xe0\xa5\xa7\xe0\xa5\xa8\xe0\xa5\xa9"), /* Devanagari "१२३" in UTF-8 */
976 D_STR_W_LEN ("\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89"), /* Chinese "一二三" in UTF-8 */ 976 D_STR_W_LEN ("\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89"), /* Chinese "一二三" in UTF-8 */
977 D_STR_W_LEN ("\xd2\xbb\xb6\xfe\xc8\xfd"), /* Chinese "一二三" in GB2312/CP936 */ 977 D_STR_W_LEN ("\xd2\xbb\xb6\xfe\xc8\xfd"), /* Chinese "一二三" in GB2312/CP936 */
978 D_STR_W_LEN ("\x1B\x24\x29\x41\x0E\x52\x3B\x36\x7E\x48\x7D\x0F") /* Chinese "一二三" in ISO-2022-CN */ 978 D_STR_W_LEN ("\x1B\x24\x29\x41\x0E\x52\x3B\x36\x7E\x48\x7D\x0F") /* Chinese "一二三" in ISO-2022-CN */
979}; 979};
980 980
981/* valid hex string for conversion to unsigned integer value */ 981/* valid hex string for conversion to unsigned integer value */
@@ -1013,25 +1013,25 @@ static const struct str_with_value xdstrs_w_values[] = {
1013 {D_STR_W_LEN ("0000000000000000000000003A29e4C3"), 32, 0x3A29E4C3}, 1013 {D_STR_W_LEN ("0000000000000000000000003A29e4C3"), 32, 0x3A29E4C3},
1014 1014
1015 /* numbers below and above limits */ 1015 /* numbers below and above limits */
1016 {D_STR_W_LEN ("7F"), 2, 127}, /* 0x7F, SCHAR_MAX */ 1016 {D_STR_W_LEN ("7F"), 2, 127}, /* 0x7F, SCHAR_MAX */
1017 {D_STR_W_LEN ("7f"), 2, 127}, /* 0x7F, SCHAR_MAX */ 1017 {D_STR_W_LEN ("7f"), 2, 127}, /* 0x7F, SCHAR_MAX */
1018 {D_STR_W_LEN ("80"), 2, 128}, /* 0x80, SCHAR_MAX+1 */ 1018 {D_STR_W_LEN ("80"), 2, 128}, /* 0x80, SCHAR_MAX+1 */
1019 {D_STR_W_LEN ("fF"), 2, 255}, /* 0xFF, UCHAR_MAX */ 1019 {D_STR_W_LEN ("fF"), 2, 255}, /* 0xFF, UCHAR_MAX */
1020 {D_STR_W_LEN ("Ff"), 2, 255}, /* 0xFF, UCHAR_MAX */ 1020 {D_STR_W_LEN ("Ff"), 2, 255}, /* 0xFF, UCHAR_MAX */
1021 {D_STR_W_LEN ("FF"), 2, 255}, /* 0xFF, UCHAR_MAX */ 1021 {D_STR_W_LEN ("FF"), 2, 255}, /* 0xFF, UCHAR_MAX */
1022 {D_STR_W_LEN ("ff"), 2, 255}, /* 0xFF, UCHAR_MAX */ 1022 {D_STR_W_LEN ("ff"), 2, 255}, /* 0xFF, UCHAR_MAX */
1023 {D_STR_W_LEN ("100"), 3, 256}, /* 0x100, UCHAR_MAX+1 */ 1023 {D_STR_W_LEN ("100"), 3, 256}, /* 0x100, UCHAR_MAX+1 */
1024 {D_STR_W_LEN ("7fff"), 4, 32767}, /* 0x7FFF, INT16_MAX */ 1024 {D_STR_W_LEN ("7fff"), 4, 32767}, /* 0x7FFF, INT16_MAX */
1025 {D_STR_W_LEN ("7FFF"), 4, 32767}, /* 0x7FFF, INT16_MAX */ 1025 {D_STR_W_LEN ("7FFF"), 4, 32767}, /* 0x7FFF, INT16_MAX */
1026 {D_STR_W_LEN ("7Fff"), 4, 32767}, /* 0x7FFF, INT16_MAX */ 1026 {D_STR_W_LEN ("7Fff"), 4, 32767}, /* 0x7FFF, INT16_MAX */
1027 {D_STR_W_LEN ("8000"), 4, 32768}, /* 0x8000, INT16_MAX+1 */ 1027 {D_STR_W_LEN ("8000"), 4, 32768}, /* 0x8000, INT16_MAX+1 */
1028 {D_STR_W_LEN ("ffff"), 4, 65535}, /* 0xFFFF, UINT16_MAX */ 1028 {D_STR_W_LEN ("ffff"), 4, 65535}, /* 0xFFFF, UINT16_MAX */
1029 {D_STR_W_LEN ("FFFF"), 4, 65535}, /* 0xFFFF, UINT16_MAX */ 1029 {D_STR_W_LEN ("FFFF"), 4, 65535}, /* 0xFFFF, UINT16_MAX */
1030 {D_STR_W_LEN ("FffF"), 4, 65535}, /* 0xFFFF, UINT16_MAX */ 1030 {D_STR_W_LEN ("FffF"), 4, 65535}, /* 0xFFFF, UINT16_MAX */
1031 {D_STR_W_LEN ("10000"), 5, 65536}, /* 0x10000, UINT16_MAX+1 */ 1031 {D_STR_W_LEN ("10000"), 5, 65536}, /* 0x10000, UINT16_MAX+1 */
1032 {D_STR_W_LEN ("7FFFFFFF"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */ 1032 {D_STR_W_LEN ("7FFFFFFF"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */
1033 {D_STR_W_LEN ("7fffffff"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */ 1033 {D_STR_W_LEN ("7fffffff"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */
1034 {D_STR_W_LEN ("7FFffFff"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */ 1034 {D_STR_W_LEN ("7FFffFff"), 8, 2147483647}, /* 0x7FFFFFFF, INT32_MAX */
1035 {D_STR_W_LEN ("80000000"), 8, UINT64_C (2147483648)}, /* 0x80000000, INT32_MAX+1 */ 1035 {D_STR_W_LEN ("80000000"), 8, UINT64_C (2147483648)}, /* 0x80000000, INT32_MAX+1 */
1036 {D_STR_W_LEN ("FFFFFFFF"), 8, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */ 1036 {D_STR_W_LEN ("FFFFFFFF"), 8, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */
1037 {D_STR_W_LEN ("ffffffff"), 8, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */ 1037 {D_STR_W_LEN ("ffffffff"), 8, UINT64_C (4294967295)}, /* 0xFFFFFFFF, UINT32_MAX */
@@ -1124,8 +1124,8 @@ const struct str_with_len strx_ovflw[] = {
1124 D_STR_W_LEN ("434532891232591226417"), 1124 D_STR_W_LEN ("434532891232591226417"),
1125 D_STR_W_LEN ("10000000000000000a"), 1125 D_STR_W_LEN ("10000000000000000a"),
1126 D_STR_W_LEN ("10000000000000000E"), 1126 D_STR_W_LEN ("10000000000000000E"),
1127 D_STR_W_LEN ("100000000000000000 and nothing"), /* 0x10000000000000000, UINT64_MAX+1 */ 1127 D_STR_W_LEN ("100000000000000000 and nothing"), /* 0x10000000000000000, UINT64_MAX+1 */
1128 D_STR_W_LEN ("100000000000000000xx"), /* 0x10000000000000000, UINT64_MAX+1 */ 1128 D_STR_W_LEN ("100000000000000000xx"), /* 0x10000000000000000, UINT64_MAX+1 */
1129 D_STR_W_LEN ("99999999999999999999"), 1129 D_STR_W_LEN ("99999999999999999999"),
1130 D_STR_W_LEN ("18446744073709551616abcd"), 1130 D_STR_W_LEN ("18446744073709551616abcd"),
1131 D_STR_W_LEN ("20000000000000000000 suffix"), 1131 D_STR_W_LEN ("20000000000000000000 suffix"),
diff --git a/src/microhttpd/test_upgrade_large.c b/src/microhttpd/test_upgrade_large.c
index 8b721bc5..fb60ddd8 100644
--- a/src/microhttpd/test_upgrade_large.c
+++ b/src/microhttpd/test_upgrade_large.c
@@ -53,10 +53,164 @@
53#include "test_helpers.h" 53#include "test_helpers.h"
54 54
55#define LARGE_STRING \ 55#define LARGE_STRING \
56 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" 56 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
57 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
58 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
59 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
60 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
61 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
62 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
63 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
64 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
65 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
66 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
67 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
68 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
69 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
70 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
71 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
72 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
73 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
74 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
75 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
76 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
77 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
78 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
79 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
80 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
81 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
82 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
83 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
84 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
85 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
86 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
87 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
88 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
89 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
90 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
91 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
92 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
93 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
94 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
95 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
96 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
97 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
98 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
99 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
100 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
101 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
102 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
103 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
104 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
105 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
106 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
107 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
108 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
109 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
110 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
111 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
112 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
113 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
114 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
115 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
116 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
117 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
118 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
119 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelXloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
120 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello" \
121 "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello\n"
122
57 123
58#define LARGE_REPLY_STRING \ 124#define LARGE_REPLY_STRING \
59 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" 125 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
126 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
127 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
128 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
129 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
130 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
131 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
132 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
133 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
134 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
135 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
136 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
137 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
138 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
139 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
140 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
141 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
142 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
143 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
144 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
145 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
146 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
147 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
148 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
149 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
150 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
151 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
152 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
153 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
154 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
155 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
156 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
157 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
158 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
159 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
160 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
161 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
162 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
163 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
164 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
165 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
166 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
167 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
168 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
169 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
170 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
171 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
172 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
173 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
174 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
175 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
176 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
177 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
178 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
179 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
180 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
181 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
182 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
183 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
184 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
185 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
186 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
187 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
188 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
189 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
190 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
191 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
192 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
193 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
194 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
195 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
196 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
197 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
198 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
199 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
200 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
201 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
202 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
203 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
204 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
205 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
206 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
207 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
208 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
209 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
210 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
211 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
212 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" \
213 "WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld\n"
60 214
61#ifdef HTTPS_SUPPORT 215#ifdef HTTPS_SUPPORT
62#include <gnutls/gnutls.h> 216#include <gnutls/gnutls.h>
@@ -338,6 +492,7 @@ wr_handshake (struct wr_socket *s)
338 492
339/** 493/**
340 * Send data to remote by socket. 494 * Send data to remote by socket.
495 *
341 * @param s the socket to use 496 * @param s the socket to use
342 * @param buf the buffer with data to send 497 * @param buf the buffer with data to send
343 * @param len the length of data in @a buf 498 * @param len the length of data in @a buf
@@ -351,15 +506,24 @@ wr_send (struct wr_socket *s,
351 size_t len) 506 size_t len)
352{ 507{
353 if (wr_plain == s->t) 508 if (wr_plain == s->t)
354 return MHD_send_ (s->fd, buf, len); 509 {
510 ssize_t ret;
511
512 ret = MHD_send_ (s->fd, buf, len);
513 (void) MHD_socket_cork_ (s->fd,
514 false);
515 return ret;
516 }
355#ifdef HTTPS_SUPPORT 517#ifdef HTTPS_SUPPORT
356 if (wr_tls == s->t) 518 if (wr_tls == s->t)
357 { 519 {
358 ssize_t ret; 520 ssize_t ret;
521
359 if (! s->tls_connected && ! wr_handshake (s)) 522 if (! s->tls_connected && ! wr_handshake (s))
360 return -1; 523 return -1;
361 524 ret = gnutls_record_send (s->tls_s,
362 ret = gnutls_record_send (s->tls_s, buf, len); 525 buf,
526 len);
363 if (ret > 0) 527 if (ret > 0)
364 return ret; 528 return ret;
365 if (GNUTLS_E_AGAIN == ret) 529 if (GNUTLS_E_AGAIN == ret)
@@ -591,7 +755,7 @@ kick_select ()
591{ 755{
592 if (MHD_ITC_IS_VALID_ (kicker)) 756 if (MHD_ITC_IS_VALID_ (kicker))
593 { 757 {
594 MHD_itc_activate_ (kicker, "K"); 758 (void) MHD_itc_activate_ (kicker, "K");
595 } 759 }
596} 760}
597 761
@@ -698,6 +862,8 @@ recv_all (struct wr_socket *sock,
698 } 862 }
699 abort (); 863 abort ();
700 } 864 }
865 if (0 != strncmp (text, buf, off + ret))
866 abort ();
701 } 867 }
702 if (0 != strncmp (text, buf, len)) 868 if (0 != strncmp (text, buf, len))
703 abort (); 869 abort ();
@@ -715,8 +881,10 @@ run_usock (void *cls)
715{ 881{
716 struct MHD_UpgradeResponseHandle *urh = cls; 882 struct MHD_UpgradeResponseHandle *urh = cls;
717 883
718 MHD_upgrade_action (urh, 884 if (MHD_YES !=
719 MHD_UPGRADE_ACTION_CORK_OFF); 885 MHD_upgrade_action (urh,
886 MHD_UPGRADE_ACTION_CORK_OFF))
887 abort ();
720 send_all (usock, 888 send_all (usock,
721 LARGE_STRING); 889 LARGE_STRING);
722 recv_all (usock, 890 recv_all (usock,
@@ -953,7 +1121,7 @@ run_mhd_select_loop (struct MHD_Daemon *daemon)
953 &ws, 1121 &ws,
954 &es); 1122 &es);
955 } 1123 }
956 MHD_itc_destroy_ (kicker); 1124 (void) MHD_itc_destroy_ (kicker);
957 MHD_itc_set_invalid_ (kicker); 1125 MHD_itc_set_invalid_ (kicker);
958} 1126}
959 1127
@@ -991,7 +1159,6 @@ run_mhd_epoll_loop (struct MHD_Daemon *daemon)
991 MHD_UNSIGNED_LONG_LONG to; 1159 MHD_UNSIGNED_LONG_LONG to;
992 struct timeval tv; 1160 struct timeval tv;
993 int ret; 1161 int ret;
994 char drain[128];
995 1162
996 di = MHD_get_daemon_info (daemon, 1163 di = MHD_get_daemon_info (daemon,
997 MHD_DAEMON_INFO_EPOLL_FD); 1164 MHD_DAEMON_INFO_EPOLL_FD);
@@ -1023,7 +1190,7 @@ run_mhd_epoll_loop (struct MHD_Daemon *daemon)
1023 MHD_itc_clear_ (kicker); 1190 MHD_itc_clear_ (kicker);
1024 MHD_run (daemon); 1191 MHD_run (daemon);
1025 } 1192 }
1026 MHD_itc_destroy_ (kicker); 1193 (void) MHD_itc_destroy_ (kicker);
1027 MHD_itc_set_invalid_ (kicker); 1194 MHD_itc_set_invalid_ (kicker);
1028} 1195}
1029 1196
@@ -1203,7 +1370,6 @@ main (int argc,
1203 if (has_param (argc, argv, "-q") || 1370 if (has_param (argc, argv, "-q") ||
1204 has_param (argc, argv, "--quiet")) 1371 has_param (argc, argv, "--quiet"))
1205 verbose = 0; 1372 verbose = 0;
1206
1207 if (test_tls) 1373 if (test_tls)
1208 { 1374 {
1209#ifdef HTTPS_SUPPORT 1375#ifdef HTTPS_SUPPORT
@@ -1247,7 +1413,6 @@ main (int argc,
1247 return 77; 1413 return 77;
1248#endif /* ! HTTPS_SUPPORT */ 1414#endif /* ! HTTPS_SUPPORT */
1249 } 1415 }
1250
1251 /* run tests */ 1416 /* run tests */
1252 if (verbose) 1417 if (verbose)
1253 printf ("Starting HTTP \"Upgrade\" tests with %s connections.\n", 1418 printf ("Starting HTTP \"Upgrade\" tests with %s connections.\n",
@@ -1262,7 +1427,6 @@ main (int argc,
1262 res); 1427 res);
1263 else if (verbose) 1428 else if (verbose)
1264 printf ("PASSED: Upgrade with external select.\n"); 1429 printf ("PASSED: Upgrade with external select.\n");
1265
1266 /* Try external auto */ 1430 /* Try external auto */
1267 res = test_upgrade (MHD_USE_AUTO, 1431 res = test_upgrade (MHD_USE_AUTO,
1268 0); 1432 0);
diff --git a/src/microhttpd/tsearch.c b/src/microhttpd/tsearch.c
index 78f37608..1d74dcce 100644
--- a/src/microhttpd/tsearch.c
+++ b/src/microhttpd/tsearch.c
@@ -24,7 +24,7 @@ typedef struct node
24/* $NetBSD: tsearch.c,v 1.5 2005/11/29 03:12:00 christos Exp $ */ 24/* $NetBSD: tsearch.c,v 1.5 2005/11/29 03:12:00 christos Exp $ */
25/* find or insert datum into search tree */ 25/* find or insert datum into search tree */
26void * 26void *
27tsearch (const void *vkey, /* key to be located */ 27tsearch (const void *vkey, /* key to be located */
28 void **vrootp, /* address of tree root */ 28 void **vrootp, /* address of tree root */
29 int (*compar)(const void *, const void *)) 29 int (*compar)(const void *, const void *))
30{ 30{
@@ -38,19 +38,19 @@ tsearch (const void *vkey, /* key to be located */
38 { /* Knuth's T1: */ 38 { /* Knuth's T1: */
39 int r; 39 int r;
40 40
41 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ 41 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
42 return *rootp; /* we found it! */ 42 return *rootp; /* we found it! */
43 43
44 rootp = (r < 0) ? 44 rootp = (r < 0) ?
45 &(*rootp)->llink : /* T3: follow left branch */ 45 &(*rootp)->llink : /* T3: follow left branch */
46 &(*rootp)->rlink; /* T4: follow right branch */ 46 &(*rootp)->rlink; /* T4: follow right branch */
47 } 47 }
48 48
49 q = malloc (sizeof(node_t)); /* T5: key not found */ 49 q = malloc (sizeof(node_t)); /* T5: key not found */
50 if (q) 50 if (q)
51 { /* make new node */ 51 { /* make new node */
52 *rootp = q; /* link new node to old */ 52 *rootp = q; /* link new node to old */
53 q->key = vkey; /* initialize new node */ 53 q->key = vkey; /* initialize new node */
54 q->llink = q->rlink = NULL; 54 q->llink = q->rlink = NULL;
55 } 55 }
56 return q; 56 return q;
@@ -73,8 +73,8 @@ tfind (const void *vkey, /* key to be found */
73 { /* T1: */ 73 { /* T1: */
74 int r; 74 int r;
75 75
76 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */ 76 if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
77 return *rootp; /* key found */ 77 return *rootp; /* key found */
78 rootp = (r < 0) ? 78 rootp = (r < 0) ?
79 &(*rootp)->llink : /* T3: follow left branch */ 79 &(*rootp)->llink : /* T3: follow left branch */
80 &(*rootp)->rlink; /* T4: follow right branch */ 80 &(*rootp)->rlink; /* T4: follow right branch */
@@ -112,17 +112,17 @@ tdelete (const void *__restrict vkey,
112 &(*rootp)->llink : /* follow llink branch */ 112 &(*rootp)->llink : /* follow llink branch */
113 &(*rootp)->rlink; /* follow rlink branch */ 113 &(*rootp)->rlink; /* follow rlink branch */
114 if (*rootp == NULL) 114 if (*rootp == NULL)
115 return NULL; /* key not found */ 115 return NULL; /* key not found */
116 } 116 }
117 r = (*rootp)->rlink; /* D1: */ 117 r = (*rootp)->rlink; /* D1: */
118 if ((q = (*rootp)->llink) == NULL) /* Left NULL? */ 118 if ((q = (*rootp)->llink) == NULL) /* Left NULL? */
119 { 119 {
120 q = r; 120 q = r;
121 } 121 }
122 else if (r != NULL) 122 else if (r != NULL)
123 { /* Right link is NULL? */ 123 { /* Right link is NULL? */
124 if (r->llink == NULL) 124 if (r->llink == NULL)
125 { /* D2: Find successor */ 125 { /* D2: Find successor */
126 r->llink = q; 126 r->llink = q;
127 q = r; 127 q = r;
128 } 128 }
@@ -135,7 +135,7 @@ tdelete (const void *__restrict vkey,
135 q->rlink = (*rootp)->rlink; 135 q->rlink = (*rootp)->rlink;
136 } 136 }
137 } 137 }
138 free (*rootp); /* D4: Free node */ 138 free (*rootp); /* D4: Free node */
139 *rootp = q; /* link parent to new node */ 139 *rootp = q; /* link parent to new node */
140 return p; 140 return p;
141} 141}
diff --git a/src/testcurl/https/test_empty_response.c b/src/testcurl/https/test_empty_response.c
index 8e1ef1a8..2cd159f9 100644
--- a/src/testcurl/https/test_empty_response.c
+++ b/src/testcurl/https/test_empty_response.c
@@ -49,7 +49,7 @@ ahc_echo (void *cls,
49{ 49{
50 struct MHD_Response *response; 50 struct MHD_Response *response;
51 enum MHD_Result ret; 51 enum MHD_Result ret;
52 (void) cls; (void) url; (void) method; (void) version; /* Unused. Silent compiler warning. */ 52 (void) cls; (void) url; (void) method; (void) version; /* Unused. Silent compiler warning. */
53 (void) upload_data; (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */ 53 (void) upload_data; (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */
54 54
55 response = MHD_create_response_from_buffer (0, NULL, 55 response = MHD_create_response_from_buffer (0, NULL,
diff --git a/src/testcurl/https/test_https_get.c b/src/testcurl/https/test_https_get.c
index b8de81a9..ab0dd9cf 100644
--- a/src/testcurl/https/test_https_get.c
+++ b/src/testcurl/https/test_https_get.c
@@ -107,9 +107,9 @@ ahc_empty (void *cls,
107 (void) cls; 107 (void) cls;
108 (void) url; 108 (void) url;
109 (void) url; 109 (void) url;
110 (void) version; /* Unused. Silent compiler warning. */ 110 (void) version; /* Unused. Silent compiler warning. */
111 (void) upload_data; 111 (void) upload_data;
112 (void) upload_data_size; /* Unused. Silent compiler warning. */ 112 (void) upload_data_size; /* Unused. Silent compiler warning. */
113 113
114 if (0 != strcasecmp ("GET", 114 if (0 != strcasecmp ("GET",
115 method)) 115 method))
diff --git a/src/testcurl/https/test_https_session_info.c b/src/testcurl/https/test_https_session_info.c
index f8b37cff..f80ea4cd 100644
--- a/src/testcurl/https/test_https_session_info.c
+++ b/src/testcurl/https/test_https_session_info.c
@@ -50,7 +50,7 @@ query_session_ahc (void *cls, struct MHD_Connection *connection,
50 struct MHD_Response *response; 50 struct MHD_Response *response;
51 enum MHD_Result ret; 51 enum MHD_Result ret;
52 int gret; 52 int gret;
53 (void) cls; (void) url; (void) method; (void) version; /* Unused. Silent compiler warning. */ 53 (void) cls; (void) url; (void) method; (void) version; /* Unused. Silent compiler warning. */
54 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */ 54 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */
55 55
56 if (NULL == *ptr) 56 if (NULL == *ptr)
diff --git a/src/testcurl/https/tls_test_common.c b/src/testcurl/https/tls_test_common.c
index 1d24c701..fc998317 100644
--- a/src/testcurl/https/tls_test_common.c
+++ b/src/testcurl/https/tls_test_common.c
@@ -189,7 +189,7 @@ http_ahc (void *cls,
189 static int aptr; 189 static int aptr;
190 struct MHD_Response *response; 190 struct MHD_Response *response;
191 enum MHD_Result ret; 191 enum MHD_Result ret;
192 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */ 192 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */
193 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */ 193 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */
194 194
195 if (0 != strcmp (method, MHD_HTTP_METHOD_GET)) 195 if (0 != strcmp (method, MHD_HTTP_METHOD_GET))
diff --git a/src/testcurl/test_digestauth.c b/src/testcurl/test_digestauth.c
index 9b33eb9b..6a82c5a2 100644
--- a/src/testcurl/test_digestauth.c
+++ b/src/testcurl/test_digestauth.c
@@ -91,7 +91,7 @@ ahc_echo (void *cls,
91 const char *password = "testpass"; 91 const char *password = "testpass";
92 const char *realm = "test@example.com"; 92 const char *realm = "test@example.com";
93 enum MHD_Result ret; 93 enum MHD_Result ret;
94 (void) cls; (void) url; /* Unused. Silent compiler warning. */ 94 (void) cls; (void) url; /* Unused. Silent compiler warning. */
95 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 95 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
96 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */ 96 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */
97 97
diff --git a/src/testcurl/test_digestauth_with_arguments.c b/src/testcurl/test_digestauth_with_arguments.c
index 70d5f644..3d90f0db 100644
--- a/src/testcurl/test_digestauth_with_arguments.c
+++ b/src/testcurl/test_digestauth_with_arguments.c
@@ -85,7 +85,7 @@ ahc_echo (void *cls,
85 const char *password = "testpass"; 85 const char *password = "testpass";
86 const char *realm = "test@example.com"; 86 const char *realm = "test@example.com";
87 enum MHD_Result ret; 87 enum MHD_Result ret;
88 (void) cls; (void) url; /* Unused. Silent compiler warning. */ 88 (void) cls; (void) url; /* Unused. Silent compiler warning. */
89 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 89 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
90 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */ 90 (void) upload_data_size; (void) unused; /* Unused. Silent compiler warning. */
91 91
diff --git a/src/testcurl/test_get.c b/src/testcurl/test_get.c
index 91efdefd..964cfe5f 100644
--- a/src/testcurl/test_get.c
+++ b/src/testcurl/test_get.c
@@ -730,9 +730,9 @@ ahc_empty (void *cls,
730 (void) cls; 730 (void) cls;
731 (void) url; 731 (void) url;
732 (void) url; 732 (void) url;
733 (void) version; /* Unused. Silent compiler warning. */ 733 (void) version; /* Unused. Silent compiler warning. */
734 (void) upload_data; 734 (void) upload_data;
735 (void) upload_data_size; /* Unused. Silent compiler warning. */ 735 (void) upload_data_size; /* Unused. Silent compiler warning. */
736 736
737 if (0 != strcasecmp ("GET", method)) 737 if (0 != strcasecmp ("GET", method))
738 return MHD_NO; /* unexpected method */ 738 return MHD_NO; /* unexpected method */
diff --git a/src/testcurl/test_get_chunked.c b/src/testcurl/test_get_chunked.c
index aa60e2f8..cab4e1b5 100644
--- a/src/testcurl/test_get_chunked.c
+++ b/src/testcurl/test_get_chunked.c
@@ -121,7 +121,7 @@ ahc_echo (void *cls,
121 enum MHD_Result ret; 121 enum MHD_Result ret;
122 122
123 (void) url; 123 (void) url;
124 (void) version; /* Unused. Silent compiler warning. */ 124 (void) version; /* Unused. Silent compiler warning. */
125 (void) upload_data; 125 (void) upload_data;
126 (void) upload_data_size; /* Unused. Silent compiler warning. */ 126 (void) upload_data_size; /* Unused. Silent compiler warning. */
127 127
diff --git a/src/testcurl/test_get_empty.c b/src/testcurl/test_get_empty.c
index 79ce49e8..52718acb 100644
--- a/src/testcurl/test_get_empty.c
+++ b/src/testcurl/test_get_empty.c
@@ -687,9 +687,9 @@ ahc_empty (void *cls,
687 (void) cls; 687 (void) cls;
688 (void) url; 688 (void) url;
689 (void) url; 689 (void) url;
690 (void) version; /* Unused. Silence compiler warning. */ 690 (void) version; /* Unused. Silence compiler warning. */
691 (void) upload_data; 691 (void) upload_data;
692 (void) upload_data_size; /* Unused. Silent compiler warning. */ 692 (void) upload_data_size; /* Unused. Silent compiler warning. */
693 693
694 if (0 != strcasecmp ("GET", method)) 694 if (0 != strcasecmp ("GET", method))
695 return MHD_NO; /* unexpected method */ 695 return MHD_NO; /* unexpected method */
diff --git a/src/testcurl/test_post.c b/src/testcurl/test_post.c
index 675f8db6..d591ab8b 100644
--- a/src/testcurl/test_post.c
+++ b/src/testcurl/test_post.c
@@ -573,7 +573,7 @@ ahc_cancel (void *cls,
573{ 573{
574 struct MHD_Response *response; 574 struct MHD_Response *response;
575 enum MHD_Result ret; 575 enum MHD_Result ret;
576 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */ 576 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */
577 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */ 577 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */
578 578
579 if (0 != strcasecmp ("POST", method)) 579 if (0 != strcasecmp ("POST", method))
diff --git a/src/testcurl/test_post_loop.c b/src/testcurl/test_post_loop.c
index 0eaf2730..95e1a0f3 100644
--- a/src/testcurl/test_post_loop.c
+++ b/src/testcurl/test_post_loop.c
@@ -84,7 +84,7 @@ ahc_echo (void *cls,
84 static int marker; 84 static int marker;
85 struct MHD_Response *response; 85 struct MHD_Response *response;
86 enum MHD_Result ret; 86 enum MHD_Result ret;
87 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */ 87 (void) cls; (void) url; (void) version; /* Unused. Silent compiler warning. */
88 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */ 88 (void) upload_data; (void) upload_data_size; /* Unused. Silent compiler warning. */
89 89
90 if (0 != strcmp ("POST", method)) 90 if (0 != strcmp ("POST", method))
diff --git a/src/testcurl/test_quiesce_stream.c b/src/testcurl/test_quiesce_stream.c
index 5a3e601e..f20ebcac 100644
--- a/src/testcurl/test_quiesce_stream.c
+++ b/src/testcurl/test_quiesce_stream.c
@@ -143,7 +143,7 @@ http_AccessHandlerCallback (void *cls,
143 void **con_cls) 143 void **con_cls)
144{ 144{
145 enum MHD_Result ret; 145 enum MHD_Result ret;
146 (void) cls; (void) url; /* Unused. Silent compiler warning. */ 146 (void) cls; (void) url; /* Unused. Silent compiler warning. */
147 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 147 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
148 (void) upload_data_size; /* Unused. Silent compiler warning. */ 148 (void) upload_data_size; /* Unused. Silent compiler warning. */
149 149
diff --git a/src/testcurl/test_termination.c b/src/testcurl/test_termination.c
index 5541ae30..01c4bf59 100644
--- a/src/testcurl/test_termination.c
+++ b/src/testcurl/test_termination.c
@@ -57,7 +57,7 @@ connection_handler (void *cls,
57 void **ptr) 57 void **ptr)
58{ 58{
59 static int i; 59 static int i;
60 (void) cls; (void) url; /* Unused. Silent compiler warning. */ 60 (void) cls; (void) url; /* Unused. Silent compiler warning. */
61 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */ 61 (void) method; (void) version; (void) upload_data; /* Unused. Silent compiler warning. */
62 (void) upload_data_size; /* Unused. Silent compiler warning. */ 62 (void) upload_data_size; /* Unused. Silent compiler warning. */
63 63
diff --git a/src/testzzuf/test_get_chunked.c b/src/testzzuf/test_get_chunked.c
index 9a6536c0..ed974828 100644
--- a/src/testzzuf/test_get_chunked.c
+++ b/src/testzzuf/test_get_chunked.c
@@ -104,7 +104,7 @@ ahc_echo (void *cls,
104 enum MHD_Result ret; 104 enum MHD_Result ret;
105 105
106 (void) url; 106 (void) url;
107 (void) version; /* Unused. Silent compiler warning. */ 107 (void) version; /* Unused. Silent compiler warning. */
108 (void) upload_data; 108 (void) upload_data;
109 (void) upload_data_size; /* Unused. Silent compiler warning. */ 109 (void) upload_data_size; /* Unused. Silent compiler warning. */
110 110