commit 3a6b50c8215c1c21caaee89d814af9bde321a2ba parent 45b90c7cea2917b524076e9144cc7325e8eab7b9 Author: Evgeny Grin (Karlson2k) <k2k@narod.ru> Date: Sun, 13 Mar 2022 12:08:24 +0300 MHD_queue_response(): refuse 101 code when not supported Diffstat:
| M | src/microhttpd/connection.c | | | 21 | +++++++++++++++++++++ |
1 file changed, 21 insertions(+), 0 deletions(-)
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c @@ -5229,6 +5229,27 @@ MHD_queue_response (struct MHD_Connection *connection, } } #endif /* UPGRADE_SUPPORT */ + if (MHD_HTTP_SWITCHING_PROTOCOLS == status_code) + { +#ifdef UPGRADE_SUPPORT + if (NULL == response->upgrade_handler) + { +#ifdef HAVE_MESSAGES + MHD_DLOG (daemon, + _ ("Application used status code 101 \"Switching Protocols\" " \ + "with non-'upgrade' response!\n")); +#endif /* HAVE_MESSAGES */ + return MHD_NO; + } +#else /* ! UPGRADE_SUPPORT */ +#ifdef HAVE_MESSAGES + MHD_DLOG (daemon, + _ ("Application used status code 101 \"Switching Protocols\", " \ + "but this MHD was built without \"Upgrade\" support!\n")); +#endif /* HAVE_MESSAGES */ + return MHD_NO; +#endif /* ! UPGRADE_SUPPORT */ + } if ( (100 > status_code) || (999 < status_code) ) {