Commit Diff


commit - 0a53bd62d11ed31ce71da1fc9993bc25a6c93755
commit + 3c6e1aaeede670574a0a880a27bd1fd85269024b
blob - 55013fb5da5f02362fa64295f888aee9478c4913
blob + 80077410f3ede6a2089d42a3f7e3ce9687643fbf
--- control.c
+++ control.c
@@ -101,6 +101,12 @@ control_init(char *path)
 	}
 
 	return (fd);
+}
+
+static void
+enable_accept(int fd, int ev, void *bula)
+{
+	ev_add(control_state.fd, POLLIN, control_accept, NULL);
 }
 
 int
@@ -115,7 +121,7 @@ control_listen(int fd)
 		return (-1);
 	}
 
-	ev_add(control_state.fd, POLLIN, control_accept, NULL);
+	enable_accept(-1, 0, NULL);
 	return (0);
 }
 
@@ -138,7 +144,7 @@ control_accept(int listenfd, int event, void *bula)
 			struct timeval evtpause = { 1, 0 };
 
 			ev_del(control_state.fd);
-			ev_timer(&evtpause, control_accept, NULL);
+			ev_timer(&evtpause, enable_accept, NULL);
 		} else if (errno != EWOULDBLOCK && errno != EINTR &&
 		    errno != ECONNABORTED)
 			log_warn("%s: accept4", __func__);