]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
dbus: make _dbus_close_socket() take DBusSocket*
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Tue, 8 Feb 2022 13:15:05 +0000 (17:15 +0400)
committerSimon McVittie <smcv@collabora.com>
Fri, 15 Jul 2022 15:26:18 +0000 (16:26 +0100)
This will allow to invalidate the socket in the following commit.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
13 files changed:
bus/dispatch.c
bus/main.c
dbus/dbus-nonce.c
dbus/dbus-server-debug-pipe.c
dbus/dbus-server-socket.c
dbus/dbus-server-unix.c
dbus/dbus-spawn-unix.c
dbus/dbus-spawn-win.c
dbus/dbus-sysdeps-unix.c
dbus/dbus-sysdeps-win.c
dbus/dbus-sysdeps.h
dbus/dbus-transport-socket.c
dbus/dbus-transport-unix.c

index c3019b1e86316734a5caac9cf7ad360b4f593bde..3f9852619edabfe7138966efa1ed2c2aa2e7bc30 100644 (file)
@@ -5181,9 +5181,9 @@ bus_unix_fds_passing_test (const char *test_data_dir_cstr)
                                 DBUS_TYPE_INVALID))
     _dbus_test_fatal ("Failed to attach fds.");
 
-  if (!_dbus_close_socket (one[0], &error))
+  if (!_dbus_close_socket (&one[0], &error))
     _dbus_test_fatal ("Failed to close pipe #1 ");
-  if (!_dbus_close_socket (two[0], &error))
+  if (!_dbus_close_socket (&two[0], &error))
     _dbus_test_fatal ("Failed to close pipe #2 ");
 
   if (!(dbus_connection_can_send_type(foo, DBUS_TYPE_UNIX_FD)))
@@ -5250,9 +5250,9 @@ bus_unix_fds_passing_test (const char *test_data_dir_cstr)
   if (read(two[1].fd, &r, 1) != 1 || r != 'Z')
     _dbus_test_fatal ("Failed to read value from pipe.");
 
-  if (!_dbus_close_socket (one[1], &error))
+  if (!_dbus_close_socket (&one[1], &error))
     _dbus_test_fatal ("Failed to close pipe #1 ");
-  if (!_dbus_close_socket (two[1], &error))
+  if (!_dbus_close_socket (&two[1], &error))
     _dbus_test_fatal ("Failed to close pipe #2 ");
 
   _dbus_verbose ("Disconnecting foo\n");
index 5f756d5c92c58e48b5eac02c477c8ad5d0d15807..5614f244fe3a9bcb2d57230837e72078cc3c6f6e 100644 (file)
@@ -387,10 +387,10 @@ close_reload_pipe (DBusWatch **watch)
     _dbus_watch_unref (*watch);
     *watch = NULL;
 
-    _dbus_close_socket (reload_pipe[RELOAD_READ_END], NULL);
+    _dbus_close_socket (&reload_pipe[RELOAD_READ_END], NULL);
     _dbus_socket_invalidate (&reload_pipe[RELOAD_READ_END]);
 
-    _dbus_close_socket (reload_pipe[RELOAD_WRITE_END], NULL);
+    _dbus_close_socket (&reload_pipe[RELOAD_WRITE_END], NULL);
     _dbus_socket_invalidate (&reload_pipe[RELOAD_WRITE_END]);
 }
 #endif /* DBUS_UNIX */
index ef5eb617f38dc26ff8a92c2ea5cd2347e467b4e9..fe86fb123eda628b08fc02c20ac29159597fdbe7 100644 (file)
@@ -194,7 +194,7 @@ _dbus_accept_with_noncefile (DBusSocket listen_fd, const DBusNonceFile *noncefil
 
   if (do_check_nonce(fd, &nonce, NULL) != TRUE) {
     _dbus_verbose ("nonce check failed. Closing socket.\n");
-    _dbus_close_socket(fd, NULL);
+    _dbus_close_socket (&fd, NULL);
     _dbus_socket_invalidate (&fd);
     goto out;
   }
index c396bc82823af5b292987a5480381ade2af799d4..4f9f4ffbc24db5ac370358e96e4459a195f26221 100644 (file)
@@ -260,8 +260,8 @@ _dbus_transport_debug_pipe_new (const char     *server_name,
                                                      NULL, &address);
   if (client_transport == NULL)
     {
-      _dbus_close_socket (client_fd, NULL);
-      _dbus_close_socket (server_fd, NULL);
+      _dbus_close_socket (&client_fd, NULL);
+      _dbus_close_socket (&server_fd, NULL);
       dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL);
       _dbus_string_free (&address);
       return NULL;
@@ -276,7 +276,7 @@ _dbus_transport_debug_pipe_new (const char     *server_name,
   if (server_transport == NULL)
     {
       _dbus_transport_unref (client_transport);
-      _dbus_close_socket (server_fd, NULL);
+      _dbus_close_socket (&server_fd, NULL);
       dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL);
       return NULL;
     }
index bc5e3a9d306641c0cd84d1976b92e563fdfecadd..3bab5960b137e6ef7d1a8352fe7d339d243c277c 100644 (file)
@@ -103,7 +103,7 @@ handle_new_client_fd_and_unlock (DBusServer *server,
   transport = _dbus_transport_new_for_socket (client_fd, &server->guid_hex, NULL);
   if (transport == NULL)
     {
-      _dbus_close_socket (client_fd, NULL);
+      _dbus_close_socket (&client_fd, NULL);
       SERVER_UNLOCK (server);
       return FALSE;
     }
@@ -243,7 +243,7 @@ socket_disconnect (DBusServer *server)
 
       if (_dbus_socket_is_valid (socket_server->fds[i]))
         {
-          _dbus_close_socket (socket_server->fds[i], NULL);
+          _dbus_close_socket (&socket_server->fds[i], NULL);
           _dbus_socket_invalidate (&socket_server->fds[i]);
         }
     }
@@ -513,7 +513,7 @@ failed:
   if (listen_fds != NULL)
     {
       for (i = 0; i < nlisten_fds; i++)
-        _dbus_close_socket (listen_fds[i], NULL);
+        _dbus_close_socket (&listen_fds[i], NULL);
       dbus_free (listen_fds);
     }
 
index c7ace2bcaeede23026b3ff884b06fbe056682ca1..1471cd823385c9a38b1d66a5db46975cfa2f344a 100644 (file)
@@ -258,7 +258,7 @@ _dbus_server_listen_platform_specific (DBusAddressEntry *entry,
   systemd_err:
       for (i = 0; i < n; i++)
         {
-          _dbus_close_socket (fds[i], NULL);
+          _dbus_close_socket (&fds[i], NULL);
         }
       dbus_free (fds);
       _dbus_string_free (&address);
@@ -372,7 +372,7 @@ _dbus_server_new_for_domain_socket (const char     *path,
   return server;
 
  failed_2:
-  _dbus_close_socket (listen_fd, NULL);
+  _dbus_close_socket (&listen_fd, NULL);
  failed_1:
   dbus_free (path_copy);
  failed_0:
index f3577e706e6fbad807459193f74fa27bf3dcfa5c..fb5b4267d511d3d8bafaf7055e3ceadce7661c34 100644 (file)
@@ -560,7 +560,7 @@ close_socket_to_babysitter (DBusBabysitter *sitter)
 
   if (sitter->socket_to_babysitter.fd >= 0)
     {
-      _dbus_close_socket (sitter->socket_to_babysitter, NULL);
+      _dbus_close_socket (&sitter->socket_to_babysitter, NULL);
       sitter->socket_to_babysitter.fd = -1;
     }
 }
index 61961901d28f2c7491ae53fb30ff8e86daac9cc7..c879688dbb4790a608b56c8f5e8b4f5207b62518 100644 (file)
@@ -160,7 +160,7 @@ close_socket_to_babysitter (DBusBabysitter *sitter)
 
   if (sitter->socket_to_babysitter.sock != INVALID_SOCKET)
     {
-      _dbus_close_socket (sitter->socket_to_babysitter, NULL);
+      _dbus_close_socket (&sitter->socket_to_babysitter, NULL);
       sitter->socket_to_babysitter.sock = INVALID_SOCKET;
     }
 }
@@ -188,7 +188,7 @@ _dbus_babysitter_unref (DBusBabysitter *sitter)
 
       if (sitter->socket_to_main.sock != INVALID_SOCKET)
         {
-          _dbus_close_socket (sitter->socket_to_main, NULL);
+          _dbus_close_socket (&sitter->socket_to_main, NULL);
           sitter->socket_to_main.sock = INVALID_SOCKET;
         }
 
index a7856e778daf6a5e83e080163b7f0ab484bae2fb..152a3862fb9e4dbd71aefe143ed2295286f840da 100644 (file)
@@ -305,10 +305,13 @@ _dbus_open_unix_socket (int              *fd,
  * @returns #FALSE if error is set
  */
 dbus_bool_t
-_dbus_close_socket (DBusSocket        fd,
+_dbus_close_socket (DBusSocket       *fd,
                     DBusError        *error)
 {
-  return _dbus_close (fd.fd, error);
+  _dbus_assert (fd != NULL);
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  return _dbus_close (fd->fd, error);
 }
 
 /**
index 9b8d1889a44f73ba90ed51508d63dba02bcc45b2..445662148dc910a636c2f7c00c22159335adab15 100644 (file)
@@ -490,13 +490,14 @@ _dbus_write_socket (DBusSocket        fd,
  * @returns #FALSE if error set
  */
 dbus_bool_t
-_dbus_close_socket (DBusSocket fd,
-                    DBusError *error)
+_dbus_close_socket (DBusSocket *fd,
+                    DBusError  *error)
 {
+  _dbus_assert (fd != NULL);
   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
 
  again:
-  if (closesocket (fd.sock) == SOCKET_ERROR)
+  if (closesocket (fd->sock) == SOCKET_ERROR)
     {
       DBUS_SOCKET_SET_ERRNO ();
       
@@ -505,10 +506,10 @@ _dbus_close_socket (DBusSocket fd,
         
       dbus_set_error (error, _dbus_error_from_errno (errno),
                       "Could not close socket: socket=%Iu, , %s",
-                      fd.sock, _dbus_strerror_from_errno ());
+                      fd->sock, _dbus_strerror_from_errno ());
       return FALSE;
     }
-  _dbus_verbose ("socket=%Iu, \n", fd.sock);
+  _dbus_verbose ("socket=%Iu, \n", fd->sock);
 
   return TRUE;
 }
index 0e51b32c6e5dab38c1cf815a5e8a8d73bf208211..887a0ce6d16d54722966514f001fa4f79094b827 100644 (file)
@@ -212,7 +212,7 @@ dbus_bool_t _dbus_set_socket_nonblocking (DBusSocket      fd,
                                           DBusError      *error);
 
 DBUS_PRIVATE_EXPORT
-dbus_bool_t _dbus_close_socket     (DBusSocket        fd,
+dbus_bool_t _dbus_close_socket     (DBusSocket       *fd,
                                     DBusError        *error);
 DBUS_PRIVATE_EXPORT
 int         _dbus_read_socket      (DBusSocket        fd,
index fa1307bd12ac568a3df93b7af09ab151d9ad7207..37560b117d59f55ff92fdce894b9886eb37894bf 100644 (file)
@@ -1042,7 +1042,7 @@ socket_disconnect (DBusTransport *transport)
   
   free_watches (transport);
   
-  _dbus_close_socket (socket_transport->fd, NULL);
+  _dbus_close_socket (&socket_transport->fd, NULL);
   _dbus_socket_invalidate (&socket_transport->fd);
 }
 
@@ -1430,7 +1430,7 @@ _dbus_transport_new_for_tcp_socket (const char     *host,
   if (transport == NULL)
     {
       dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL);
-      _dbus_close_socket (fd, NULL);
+      _dbus_close_socket (&fd, NULL);
       _dbus_socket_invalidate (&fd);
     }
 
index 30c3ba44a9db37988e94ddfe1eb300e4a22adc6f..99822fbf1542f02e5ae5fdc65aee9a76d85d3d2b 100644 (file)
@@ -103,7 +103,7 @@ _dbus_transport_new_for_domain_socket (const char     *path,
   return transport;
 
  failed_1:
-  _dbus_close_socket (fd, NULL);
+  _dbus_close_socket (&fd, NULL);
  failed_0:
   _dbus_string_free (&address);
   return NULL;
@@ -203,7 +203,7 @@ _dbus_transport_new_for_exec (const char     *path,
 
  failed:
   if (fd.fd >= 0)
-    _dbus_close_socket (fd, NULL);
+    _dbus_close_socket (&fd, NULL);
 
   _dbus_string_free (&address);
   return NULL;