src/server/daemon/srvctrl.c

changeset 619
4e2bac64c950
parent 584
f3ddd6dc8e7b
--- a/src/server/daemon/srvctrl.c	Fri Oct 31 21:15:19 2025 +0100
+++ b/src/server/daemon/srvctrl.c	Fri Oct 31 21:31:02 2025 +0100
@@ -105,10 +105,18 @@
         int fd = accept(srvctrl, NULL, 0);
         if(fd < 0) {
             if(srv_shutdown) break;
+            
             log_ereport(
                     LOG_FAILURE,
                     "srvctrl: accept failed: %s",
                     strerror(errno));
+            
+            int err = errno;
+            if(err == EMFILE || err == ENFILE) {
+                sleep(5);
+                continue;
+            }
+            
             break;
         }
         
@@ -186,6 +194,8 @@
         }
     } else if(!cx_strcmp(cx_strcast(cmd), cx_str("shutdown"))) {
         webserver_shutdown();
+    } else if(!cx_strcmp(cx_strcast(cmd), cx_str("stop"))) {
+        webserver_stop();
     } else if(!cx_strcmp(cx_strcast(cmd), cx_str("stat"))) {
         // TODO: implement
     } else if(!cx_strcmp(cx_strcast(cmd), cx_str("log"))) {

mercurial