libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 0c3806b05804d668f3a88853f90e930bc180b10e
parent ebd43f0373e3b62bf25213b5cd20a84e09c010e3
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Wed, 18 Aug 2021 12:00:29 +0300

curl tests: updated select() error handling, file doxy

Tests reports now about unexpected errors from select() and
source code line number to simplify problematic position
locating.
Used much smaller timeout on W32 if system is doing some
sockets data processing in other threads.

Diffstat:
Msrc/testcurl/curl_version_check.c | 2++
Msrc/testcurl/mhd_has_in_name.h | 2+-
Msrc/testcurl/perf_get.c | 30++++++++++++++++++++----------
Msrc/testcurl/perf_get_concurrent.c | 37+++++++++++++++++++++----------------
Msrc/testcurl/test_add_conn.c | 25+++++++++++++++++--------
Msrc/testcurl/test_callback.c | 20++++++++++++++++----
Msrc/testcurl/test_concurrent_stop.c | 6++++--
Msrc/testcurl/test_delete.c | 24+++++++++++++++++-------
Msrc/testcurl/test_digestauth.c | 2++
Msrc/testcurl/test_digestauth_sha256.c | 2++
Msrc/testcurl/test_digestauth_with_arguments.c | 2++
Msrc/testcurl/test_get.c | 25+++++++++++++++++--------
Msrc/testcurl/test_get_chunked.c | 24++++++++++++++++--------
Msrc/testcurl/test_get_close_keep_alive.c | 40+++++++++++++++++++++++++---------------
Msrc/testcurl/test_get_empty.c | 24+++++++++++++++++-------
Msrc/testcurl/test_get_iovec.c | 22+++++++++++++++-------
Msrc/testcurl/test_get_response_cleanup.c | 40++++++++++++++++++++++++++++++++++++++--
Msrc/testcurl/test_get_sendfile.c | 24+++++++++++++++++-------
Msrc/testcurl/test_get_wait.c | 2+-
Msrc/testcurl/test_iplimit.c | 5+++--
Msrc/testcurl/test_large_put.c | 24+++++++++++++++++-------
Msrc/testcurl/test_long_header.c | 2++
Msrc/testcurl/test_parse_cookies.c | 24+++++++++++++++++-------
Msrc/testcurl/test_patch.c | 24+++++++++++++++++-------
Msrc/testcurl/test_post.c | 24+++++++++++++++++-------
Msrc/testcurl/test_post_loop.c | 27+++++++++++++++++++++------
Msrc/testcurl/test_postform.c | 24+++++++++++++++++-------
Msrc/testcurl/test_process_arguments.c | 24+++++++++++++++++-------
Msrc/testcurl/test_process_headers.c | 24+++++++++++++++++-------
Msrc/testcurl/test_put.c | 24+++++++++++++++++-------
Msrc/testcurl/test_put_chunked.c | 24+++++++++++++++++-------
Msrc/testcurl/test_quiesce.c | 30++++++++++++++++++++----------
Msrc/testcurl/test_quiesce_stream.c | 1+
Msrc/testcurl/test_termination.c | 2++
Msrc/testcurl/test_timeout.c | 2++
Msrc/testcurl/test_urlparse.c | 2++
36 files changed, 456 insertions(+), 184 deletions(-)

diff --git a/src/testcurl/curl_version_check.c b/src/testcurl/curl_version_check.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file curl_version_check.c * @brief verify required cURL version is available to run tests * @author Sagie Amir + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/mhd_has_in_name.h b/src/testcurl/mhd_has_in_name.h @@ -1,6 +1,6 @@ /* This file is part of libmicrohttpd - Copyright (C) 2016-2019 Karlson2k (Evgeny Grin) + Copyright (C) 2016-2021 Karlson2k (Evgeny Grin) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/src/testcurl/perf_get.c b/src/testcurl/perf_get.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -34,6 +35,7 @@ * not universally meaningful (i.e. when comparing * multithreaded vs. single-threaded or select/poll). * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -543,17 +545,25 @@ testExternalGet (int port) tv.tv_usec = 1000; if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv)) { -#ifdef MHD_POSIX_SOCKETS + #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); -#else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); -#endif + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } + #else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); + #endif } curl_multi_perform (multi, &running); if (0 == running) diff --git a/src/testcurl/perf_get_concurrent.c b/src/testcurl/perf_get_concurrent.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -30,6 +31,7 @@ * (since MHD is actually better); only the relative * scores between MHD versions are meaningful. * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -203,7 +205,7 @@ thread_gets (void *param) setting NOSIGNAL results in really weird crashes on my system! */ curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L); - for (i = 0; i<ROUNDS; i++) + for (i = 0; i < ROUNDS; i++) { if (CURLE_OK != (errornum = curl_easy_perform (c))) { @@ -233,7 +235,7 @@ do_gets (void *param) sizeof (url), "http://127.0.0.1:%d/hello_world", port); - for (j = 0; j<PAR; j++) + for (j = 0; j < PAR; j++) { if (0 != pthread_create (&par[j], NULL, &thread_gets, (void*) url)) { @@ -242,7 +244,7 @@ do_gets (void *param) return "pthread_create error"; } } - for (j = 0; j<PAR; j++) + for (j = 0; j < PAR; j++) { char *ret_val; if ((0 != pthread_join (par[j], (void**) &ret_val)) || @@ -461,23 +463,26 @@ testExternalGet (int port) if (-1 == select (max + 1, &rs, &ws, &es, &tv)) { #ifdef MHD_POSIX_SOCKETS - if (EINTR == errno) - continue; - fprintf (stderr, - "select failed: %s\n", - strerror (errno)); -#else - if ((WSAEINVAL == WSAGetLastError ()) && (0 == rs.fd_count) && (0 == - ws. - fd_count) - && (0 == es.fd_count) ) + if (EINTR != errno) { - Sleep (1000); - continue; + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); } -#endif ret |= 1024; break; +#else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); +#endif } MHD_run_from_select (d, &rs, &ws, &es); } diff --git a/src/testcurl/test_add_conn.c b/src/testcurl/test_add_conn.c @@ -1,7 +1,8 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff - Copyright (C) 2020 Karlson2k (Evgeny Grin) - large rework, multithreading. + Copyright (C) 2014-2020 Evgeny Grin (Karlson2k) - large rework, + multithreading. libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -922,14 +923,22 @@ testExternalGet (void) { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - externalErrorExitDesc ("select() failed"); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - externalErrorExitDesc ("select() failed"); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } if (FD_ISSET (aParam.lstn_sk, &rs)) diff --git a/src/testcurl/test_callback.c b/src/testcurl/test_callback.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @brief Testcase for MHD not calling the callback too often * @author Jan Seeger * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" #include "platform.h" @@ -217,12 +219,22 @@ main (int argc, char **argv) { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else if ((WSAEINVAL != WSAGetLastError ()) || - (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count)) - abort (); - Sleep (1000); + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } if (NULL != multi) diff --git a/src/testcurl/test_concurrent_stop.c b/src/testcurl/test_concurrent_stop.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011, 2015, 2016 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_concurrent_stop.c * @brief test stopping server while concurrent GETs are ongoing * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" #include "platform.h" @@ -222,7 +224,7 @@ do_gets (void *param) "http://127.0.0.1:%d/hello_world", port); - for (j = 0; j<PAR; j++) + for (j = 0; j < PAR; j++) { if (0 != pthread_create (&par[j], NULL, &thread_gets, (void*) url)) { @@ -236,7 +238,7 @@ do_gets (void *param) } } (void) sleep (1); - for (j = 0; j<PAR; j++) + for (j = 0; j < PAR; j++) { pthread_join (par[j], NULL); } diff --git a/src/testcurl/test_delete.c b/src/testcurl/test_delete.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2016 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_delete.c * @brief Testcase for libmicrohttpd DELETE operations * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -471,14 +473,22 @@ testExternalDelete () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_digestauth.c b/src/testcurl/test_digestauth.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2010 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_digestauth.c * @brief Testcase for libmicrohttpd Digest Auth * @author Amr Ali + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/test_digestauth_sha256.c b/src/testcurl/test_digestauth_sha256.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2010, 2018 Christian Grothoff + Copyright (C) 2019-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -23,6 +24,7 @@ * @brief Testcase for libmicrohttpd Digest Auth with SHA256 * @author Amr Ali * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/test_digestauth_with_arguments.c b/src/testcurl/test_digestauth_with_arguments.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2010, 2012 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_digestauth_with_arguments.c * @brief Testcase for libmicrohttpd Digest Auth with arguments * @author Amr Ali + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" #include "platform.h" diff --git a/src/testcurl/test_get.c b/src/testcurl/test_get.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -20,8 +21,8 @@ /** * @file test_get.c * @brief Testcase for libmicrohttpd GET operations - * TODO: test parsing of query * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" #include "platform.h" @@ -508,14 +509,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - _exit (99); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_get_chunked.c b/src/testcurl/test_get_chunked.c @@ -1,7 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff - Copyright (C) 2015-2021 Karlson2k (Evgeny Grin) + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -675,14 +675,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_get_close_keep_alive.c b/src/testcurl/test_get_close_keep_alive.c @@ -1,6 +1,6 @@ /* This file is part of libmicrohttpd - Copyright (C) 2017-2021 Karlson2k (Evgeny Grin) + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) Copyright (C) 2007, 2009, 2011 Christian Grothoff libmicrohttpd is free software; you can redistribute it and/or modify @@ -113,7 +113,7 @@ _externalErrorExit_func (const char *errDesc, const char *funcName, int lineNum) fprintf (stderr, "WSAGetLastError() value: %d\n", (int) WSAGetLastError ()); #endif /* MHD_WINSOCK_SOCKETS */ fflush (stderr); - _exit (99); + exit (99); } @@ -137,7 +137,7 @@ _libcurlErrorExit_func (const char *errDesc, const char *funcName, int lineNum) fprintf (stderr, "Last libcurl error details: %s\n", libcurl_errbuf); fflush (stderr); - _exit (99); + exit (99); } @@ -274,7 +274,7 @@ log_cb (void *cls, fprintf (stderr, "Wrong URI: `%s', line: %d\n", uri, __LINE__); - _exit (22); + exit (22); } return NULL; } @@ -314,7 +314,7 @@ ahc_echo (void *cls, if (NULL == response) { fprintf (stderr, "Failed to create response. Line: %d\n", __LINE__); - _exit (19); + exit (19); } if (add_mhd_close) { @@ -323,7 +323,7 @@ ahc_echo (void *cls, HDR_CONN_CLOSE_VALUE)) { fprintf (stderr, "Failed to add header. Line: %d\n", __LINE__); - _exit (19); + exit (19); } } ret = MHD_queue_response (connection, @@ -333,7 +333,7 @@ ahc_echo (void *cls, if (ret == MHD_NO) { fprintf (stderr, "Failed to queue response. Line: %d\n", __LINE__); - _exit (19); + exit (19); } return ret; } @@ -523,11 +523,11 @@ performQueryExternal (struct MHD_Daemon *d, CURL *c) if (MHD_YES != MHD_get_fdset (d, &rs, &ws, &es, &maxMhdSk)) { fprintf (stderr, "MHD_get_fdset() failed. Line: %d\n", __LINE__); - _exit (11); + exit (11); break; } tv.tv_sec = 0; - tv.tv_usec = 10000; + tv.tv_usec = 1000; #ifdef MHD_POSIX_SOCKETS if (maxMhdSk > maxCurlSk) maxCurlSk = maxMhdSk; @@ -536,18 +536,28 @@ performQueryExternal (struct MHD_Daemon *d, CURL *c) { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - externalErrorExitDesc ("select() failed"); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else if ((WSAEINVAL != WSAGetLastError ()) || - (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count)) - externalErrorExitDesc ("select() failed"); - Sleep (10); + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } if (MHD_YES != MHD_run_from_select (d, &rs, &ws, &es)) { fprintf (stderr, "MHD_run_from_select() failed. Line: %d\n", __LINE__); - _exit (11); + exit (11); } } @@ -706,7 +716,7 @@ doCurlQueryInThread (struct MHD_Daemon *d, fprintf (stderr, "MHD has wrong number of active connection (%u) " "after response has been sent. Line: %d\n", num_conn, __LINE__); - _exit (23); + exit (23); } } } diff --git a/src/testcurl/test_get_empty.c b/src/testcurl/test_get_empty.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011, 2019 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -21,6 +22,7 @@ * @file test_get_empty.c * @brief Testcase for libmicrohttpd GET operations returning an empty body * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" #include "platform.h" @@ -470,14 +472,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - _exit (99); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_get_iovec.c b/src/testcurl/test_get_iovec.c @@ -592,14 +592,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_get_response_cleanup.c b/src/testcurl/test_get_response_cleanup.c @@ -2,6 +2,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -23,6 +24,7 @@ * @file daemontest_get_response_cleanup.c * @brief Testcase for libmicrohttpd response cleanup * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -375,8 +377,25 @@ testExternalGet () tv.tv_usec = 1000; if (-1 == select (max + 1, &rs, &ws, &es, &tv)) { +#ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } +#else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); +#endif } MHD_run (d); } @@ -397,8 +416,25 @@ testExternalGet () tv.tv_usec = 1000; if (-1 == select (max + 1, &rs, &ws, &es, &tv)) { +#ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } +#else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); +#endif } MHD_run (d); } diff --git a/src/testcurl/test_get_sendfile.c b/src/testcurl/test_get_sendfile.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -21,6 +22,7 @@ * @file test_get_sendfile.c * @brief Testcase for libmicrohttpd response from FD * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -449,14 +451,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_get_wait.c b/src/testcurl/test_get_wait.c @@ -1,7 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff - Copyright (C) 2016-2021 Karlson2k (Evgeny Grin) + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/src/testcurl/test_iplimit.c b/src/testcurl/test_iplimit.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -20,9 +21,9 @@ /** * @file test_iplimit.c - * @brief Testcase for libmicrohttpd GET operations - * TODO: test parsing of query + * @brief Testcase for libmicrohttpd limits per IP * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/test_large_put.c b/src/testcurl/test_large_put.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2008 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_large_put.c * @brief Testcase for libmicrohttpd PUT operations * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -565,14 +567,22 @@ testPutExternal (void) { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_long_header.c b/src/testcurl/test_long_header.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_long_header.c * @brief Testcase for libmicrohttpd handling of very long headers * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/test_parse_cookies.c b/src/testcurl/test_parse_cookies.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_parse_cookies.c * @brief Testcase for HTTP cookie parsing * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -228,14 +230,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_patch.c b/src/testcurl/test_patch.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2020 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_patch.c * @brief Testcase for libmicrohttpd PATCH operations * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -439,14 +441,22 @@ testExternalPut () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - _exit (99); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_post.c b/src/testcurl/test_post.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_post.c * @brief Testcase for libmicrohttpd POST operations using URL-encoding * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -515,14 +517,22 @@ testExternalPost () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_post_loop.c b/src/testcurl/test_post_loop.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_post_loop.c * @brief Testcase for libmicrohttpd POST operations using URL-encoding * @author Christian Grothoff (inspired by bug report #1296) + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -525,12 +527,25 @@ testExternalPost () tv.tv_usec = (timeout % 1000) * 1000; if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv)) { - if (EINTR == errno) - continue; - fprintf (stderr, - "select failed: %s\n", - strerror (errno)); - break; +#ifdef MHD_POSIX_SOCKETS + if (EINTR != errno) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } +#else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); +#endif } while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform (multi, &running)) diff --git a/src/testcurl/test_postform.c b/src/testcurl/test_postform.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_postform.c * @brief Testcase for libmicrohttpd POST operations using multipart/postform data * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -540,14 +542,22 @@ testExternalPost () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_process_arguments.c b/src/testcurl/test_process_arguments.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2013 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_process_arguments.c * @brief Testcase for HTTP URI arguments * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -227,14 +229,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_process_headers.c b/src/testcurl/test_process_headers.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_process_headers.c * @brief Testcase for HTTP header access * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -483,14 +485,22 @@ testExternalGet () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_put.c b/src/testcurl/test_put.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_put.c * @brief Testcase for libmicrohttpd PUT operations * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -483,14 +485,22 @@ testExternalPut () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - _exit (99); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_put_chunked.c b/src/testcurl/test_put_chunked.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -23,6 +24,7 @@ * @brief Testcase for libmicrohttpd PUT operations with chunked encoding * for the upload data * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -478,14 +480,22 @@ testExternalPut () { #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } #else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); #endif } curl_multi_perform (multi, &running); diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2013, 2015 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -21,6 +22,7 @@ * @file test_quiesce.c * @brief Testcase for libmicrohttpd quiescing * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" @@ -454,17 +456,25 @@ testExternalGet () tv.tv_usec = 1000; if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv)) { -#ifdef MHD_POSIX_SOCKETS + #ifdef MHD_POSIX_SOCKETS if (EINTR != errno) - abort (); -#else - if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 != - ws. - fd_count) - || (0 != es.fd_count) ) - abort (); - Sleep (1000); -#endif + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) errno, __LINE__); + fflush (stderr); + exit (99); + } + #else + if ((WSAEINVAL != WSAGetLastError ()) || + (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) ) + { + fprintf (stderr, "Unexpected select() error: %d. Line: %d\n", + (int) WSAGetLastError (), __LINE__); + fflush (stderr); + exit (99); + } + Sleep (1); + #endif } curl_multi_perform (multi, &running); if (0 == running) diff --git a/src/testcurl/test_quiesce_stream.c b/src/testcurl/test_quiesce_stream.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2016 Christian Grothoff + Copyright (C) 2016-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/src/testcurl/test_termination.c b/src/testcurl/test_termination.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2009 Christian Grothoff + Copyright (C) 2014-2021 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_termination.c * @brief Testcase for libmicrohttpd tolerating client not closing immediately * @author hollosig + * @author Karlson2k (Evgeny Grin) */ #include "platform.h" diff --git a/src/testcurl/test_timeout.c b/src/testcurl/test_timeout.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007 Christian Grothoff + Copyright (C) 2016-2019 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file test_timeout.c * @brief Testcase for libmicrohttpd PUT operations * @author Matthias Wachs + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h" diff --git a/src/testcurl/test_urlparse.c b/src/testcurl/test_urlparse.c @@ -1,6 +1,7 @@ /* This file is part of libmicrohttpd Copyright (C) 2007, 2009, 2011 Christian Grothoff + Copyright (C) 2014-2019 Evgeny Grin (Karlson2k) libmicrohttpd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,6 +23,7 @@ * @file daemontest_urlparse.c * @brief Testcase for libmicrohttpd url parsing * @author Christian Grothoff + * @author Karlson2k (Evgeny Grin) */ #include "MHD_config.h"