[Libguestfs] [PATCH nbdkit 2/3] server: Inline free_listening_sockets.

Richard W.M. Jones rjones at redhat.com
Mon Nov 4 15:42:33 UTC 2019


This function was only ever called straight after
accept_incoming_connections, so simply make
accept_incoming_connections free the sockets at quit time.
---
 server/internal.h |  2 --
 server/main.c     |  2 --
 server/sockets.c  | 16 ++++++----------
 3 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/server/internal.h b/server/internal.h
index b28b1c8..4638727 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -474,8 +474,6 @@ extern int *bind_vsock (size_t *)
   __attribute__((__nonnull__ (1)));
 extern void accept_incoming_connections (int *socks, size_t nr_socks)
   __attribute__((__nonnull__ (1)));
-extern void free_listening_sockets (int *socks, size_t nr_socks)
-  __attribute__((__nonnull__ (1)));
 
 /* threadlocal.c */
 extern void threadlocal_init (void);
diff --git a/server/main.c b/server/main.c
index dcfdbde..8ff8e79 100644
--- a/server/main.c
+++ b/server/main.c
@@ -885,7 +885,6 @@ start_serving (void)
     change_user ();
     write_pidfile ();
     accept_incoming_connections (socks, nr_socks);
-    free_listening_sockets (socks, nr_socks); /* also closes them */
     return;
   }
 
@@ -913,7 +912,6 @@ start_serving (void)
   fork_into_background ();
   write_pidfile ();
   accept_incoming_connections (socks, nr_socks);
-  free_listening_sockets (socks, nr_socks);
 }
 
 static void
diff --git a/server/sockets.c b/server/sockets.c
index 119cb99..11bab6c 100644
--- a/server/sockets.c
+++ b/server/sockets.c
@@ -322,16 +322,6 @@ bind_vsock (size_t *nr_socks)
 #endif
 }
 
-void
-free_listening_sockets (int *socks, size_t nr_socks)
-{
-  size_t i;
-
-  for (i = 0; i < nr_socks; ++i)
-    close (socks[i]);
-  free (socks);
-}
-
 struct thread_data {
   int sock;
   size_t instance_num;
@@ -476,6 +466,12 @@ check_sockets_and_quit_fd (int *socks, size_t nr_socks)
 void
 accept_incoming_connections (int *socks, size_t nr_socks)
 {
+  size_t i;
+
   while (!quit)
     check_sockets_and_quit_fd (socks, nr_socks);
+
+  for (i = 0; i < nr_socks; ++i)
+    close (socks[i]);
+  free (socks);
 }
-- 
2.23.0




More information about the Libguestfs mailing list