aboutsummaryrefslogtreecommitdiff
path: root/src/lib/daemon_run.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/daemon_run.c')
-rw-r--r--src/lib/daemon_run.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/lib/daemon_run.c b/src/lib/daemon_run.c
index cf9ab5de..c93a5f83 100644
--- a/src/lib/daemon_run.c
+++ b/src/lib/daemon_run.c
@@ -23,6 +23,9 @@
23 * @author Christian Grothoff 23 * @author Christian Grothoff
24 */ 24 */
25#include "internal.h" 25#include "internal.h"
26#include "daemon_epoll.h"
27#include "daemon_poll.h"
28#include "daemon_select.h"
26 29
27 30
28/** 31/**
@@ -46,7 +49,32 @@
46enum MHD_StatusCode 49enum MHD_StatusCode
47MHD_daemon_run (struct MHD_Daemon *daemon) 50MHD_daemon_run (struct MHD_Daemon *daemon)
48{ 51{
49 return -1; 52 if (daemon->shutdown)
53 return MHD_SC_DAEMON_ALREADY_SHUTDOWN;
54 if (MHD_TM_EXTERNAL_EVENT_LOOP != daemon->threading_model)
55 return MHD_SC_CONFIGURATION_MISSMATCH_FOR_RUN_EXTERNAL;
56 switch (daemon->event_loop_syscall)
57 {
58 case MHD_ELS_POLL:
59 MHD_daemon_poll_ (daemon,
60 MHD_NO);
61 MHD_cleanup_connections (daemon);
62 break;
63#ifdef EPOLL_SUPPORT
64 case MHD_ELS_EPOLL:
65 MHD_daemon_epoll_ (daemon,
66 MHD_NO);
67 MHD_cleanup_connections (daemon);
68 break;
69#endif
70 case MHD_ELS_SELECT:
71 MHD_daemon_select_ (daemon,
72 MHD_NO);
73 /* MHD_select does MHD_cleanup_connections already */
74 break;
75 default:
76 return MHD_SC_CONFIGURATION_UNEXPECTED_ELS;
77 }
50} 78}
51 79
52/* end of daemon_run.c */ 80/* end of daemon_run.c */