[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r36996 - in libmicrohttpd: . src/microhttpd
From: |
gnunet |
Subject: |
[GNUnet-SVN] r36996 - in libmicrohttpd: . src/microhttpd |
Date: |
Fri, 8 Apr 2016 20:40:58 +0200 |
Author: Karlson2k
Date: 2016-04-08 20:40:58 +0200 (Fri, 08 Apr 2016)
New Revision: 36996
Modified:
libmicrohttpd/ChangeLog
libmicrohttpd/src/microhttpd/connection.c
libmicrohttpd/src/microhttpd/daemon.c
Log:
Reworked calling shutdown() on connections:
Now called on all platforms (including W32), called only with SHUT_WR,
except in close_all_connections() where shutdown() called with SHUT_RDWR.
This should increase chances of graceful disconnection.
Modified: libmicrohttpd/ChangeLog
===================================================================
--- libmicrohttpd/ChangeLog 2016-04-08 18:27:52 UTC (rev 36995)
+++ libmicrohttpd/ChangeLog 2016-04-08 18:40:58 UTC (rev 36996)
@@ -1,3 +1,9 @@
+Fri Apr 08 18:32:17 CET 2016
+ Some minor internal fixes, addition error checking and
+ micro optimizations.
+ Reworked usage of sockets shutdown() - now work equally
+ on all platforms, disconnection should be "more graceful". -EG
+
Tue Mar 15 21:52:27 CET 2016
Do not crash if pthread_create() fails. -DD
Modified: libmicrohttpd/src/microhttpd/connection.c
===================================================================
--- libmicrohttpd/src/microhttpd/connection.c 2016-04-08 18:27:52 UTC (rev
36995)
+++ libmicrohttpd/src/microhttpd/connection.c 2016-04-08 18:40:58 UTC (rev
36996)
@@ -479,8 +479,7 @@
daemon = connection->daemon;
if (0 == (connection->daemon->options & MHD_USE_EPOLL_TURBO))
- shutdown (connection->socket_fd,
- (MHD_YES == connection->read_closed) ? SHUT_WR : SHUT_RDWR);
+ shutdown (connection->socket_fd, SHUT_WR);
connection->state = MHD_CONNECTION_CLOSED;
connection->event_loop_info = MHD_EVENT_LOOP_INFO_CLEANUP;
if ( (NULL != daemon->notify_completed) &&
Modified: libmicrohttpd/src/microhttpd/daemon.c
===================================================================
--- libmicrohttpd/src/microhttpd/daemon.c 2016-04-08 18:27:52 UTC (rev
36995)
+++ libmicrohttpd/src/microhttpd/daemon.c 2016-04-08 18:40:58 UTC (rev
36996)
@@ -1078,9 +1078,7 @@
MHD_CONNECTION_NOTIFY_CLOSED);
if (MHD_INVALID_SOCKET != con->socket_fd)
{
-#ifdef WINDOWS
shutdown (con->socket_fd, SHUT_WR);
-#endif
if (0 != MHD_socket_close_ (con->socket_fd))
MHD_PANIC ("close failed\n");
con->socket_fd = MHD_INVALID_SOCKET;
@@ -2115,9 +2113,6 @@
}
if (MHD_INVALID_SOCKET != pos->socket_fd)
{
-#ifdef WINDOWS
- shutdown (pos->socket_fd, SHUT_WR);
-#endif
if (0 != MHD_socket_close_ (pos->socket_fd))
MHD_PANIC ("close failed\n");
}
@@ -3733,11 +3728,6 @@
daemon->socket_fd = MHD_INVALID_SOCKET;
daemon->listening_address_reuse = 0;
daemon->options = flags;
-#if defined(MHD_WINSOCK_SOCKETS) || defined(CYGWIN)
- /* Winsock is broken with respect to 'shutdown';
- this disables us calling 'shutdown' on W32. */
- daemon->options |= MHD_USE_EPOLL_TURBO;
-#endif
daemon->port = port;
daemon->apc = apc;
daemon->apc_cls = apc_cls;
@@ -4451,8 +4441,7 @@
MHD_PANIC ("MHD_stop_daemon() called while we have suspended
connections.\n");
for (pos = daemon->connections_head; NULL != pos; pos = pos->next)
{
- shutdown (pos->socket_fd,
- (MHD_YES == pos->read_closed) ? SHUT_WR : SHUT_RDWR);
+ shutdown (pos->socket_fd, SHUT_RDWR);
#if MHD_WINSOCK_SOCKETS
if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
(MHD_INVALID_PIPE_ != daemon->wpipe[1]) &&
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r36996 - in libmicrohttpd: . src/microhttpd,
gnunet <=