From 0a55965bcc28928ae17ca39e3b8e35adf11ea09c Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Thu, 18 Feb 2016 15:23:30 +0200 Subject: Fix activation/deactivation of network listeners. * src/ctl.c (prog_active): New function. (prog_serialize): Use prog_active to report prog's activity state. For listener components, return also their service and tcpmux master names, if applicable. (fun_stop): Stop listeners as well. (fun_start): Start listeners. (ctlio_end): Don't close fd: this is done by deregister_socket * src/inetd-bi.c (tcpmux_help): Don't list inactive components. * src/prog.h (prog_activate_listener) (prog_deactivate_listener): New protos. * src/progman.c (prog_lookup_by_tag) (prog_lookup_by_service): Remove. (progman_cleanup): Fix coredump (premature free). (progman_stop_component): If component is a listener, deactivate it. (prog_activate_listener) (prog_deactivate_listener): New functions. * src/socket.c (delete_sockinst): Close the socket descriptor. * src/sysvinit.c (sysvinit_fifo_handler, create_fifo): Don't close fd, leave that to deregister_socket. --- src/sysvinit.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/sysvinit.c') diff --git a/src/sysvinit.c b/src/sysvinit.c index 87a52d6..6276228 100644 --- a/src/sysvinit.c +++ b/src/sysvinit.c @@ -482,7 +482,6 @@ sysvinit_fifo_handler (int fd, void *data) { logmsg (LOG_ERR, _("end of file on %s: reopening"), init_fifo); size = 0; - close (fd); deregister_socket (fd); create_fifo (); return 0; @@ -573,10 +572,7 @@ create_fifo () { fstat (fd, &fst); if (fst.st_dev != st.st_dev || fst.st_ino != st.st_ino) - { - deregister_socket (fd); - close (fd); - } + deregister_socket (fd); debug (1, ("reopening %s", init_fifo)); } -- cgit v1.2.1