summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2022-02-08 17:15:05 +0400
committerSimon McVittie <smcv@collabora.com>2022-07-15 16:26:18 +0100
commit7d20a3c6049f96f396ac757a6954554dfb6452c8 (patch)
treeeafb0ed3ae15546245906b56033512c3775f6315
parentc100e6e9e531457313292fb7c2b80a2fbd2c78bc (diff)
downloaddbus-7d20a3c6049f96f396ac757a6954554dfb6452c8.tar.gz
dbus: make _dbus_close_socket() take DBusSocket*
This will allow to invalidate the socket in the following commit. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-rw-r--r--bus/dispatch.c8
-rw-r--r--bus/main.c4
-rw-r--r--dbus/dbus-nonce.c2
-rw-r--r--dbus/dbus-server-debug-pipe.c6
-rw-r--r--dbus/dbus-server-socket.c6
-rw-r--r--dbus/dbus-server-unix.c4
-rw-r--r--dbus/dbus-spawn-unix.c2
-rw-r--r--dbus/dbus-spawn-win.c4
-rw-r--r--dbus/dbus-sysdeps-unix.c7
-rw-r--r--dbus/dbus-sysdeps-win.c11
-rw-r--r--dbus/dbus-sysdeps.h2
-rw-r--r--dbus/dbus-transport-socket.c4
-rw-r--r--dbus/dbus-transport-unix.c4
13 files changed, 34 insertions, 30 deletions
diff --git a/bus/dispatch.c b/bus/dispatch.c
index c3019b1e..3f985261 100644
--- a/bus/dispatch.c
+++ b/bus/dispatch.c
@@ -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");
diff --git a/bus/main.c b/bus/main.c
index 5f756d5c..5614f244 100644
--- a/bus/main.c
+++ b/bus/main.c
@@ -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 */
diff --git a/dbus/dbus-nonce.c b/dbus/dbus-nonce.c
index ef5eb617..fe86fb12 100644
--- a/dbus/dbus-nonce.c
+++ b/dbus/dbus-nonce.c
@@ -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;
}
diff --git a/dbus/dbus-server-debug-pipe.c b/dbus/dbus-server-debug-pipe.c
index c396bc82..4f9f4ffb 100644
--- a/dbus/dbus-server-debug-pipe.c
+++ b/dbus/dbus-server-debug-pipe.c
@@ -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;
}
diff --git a/dbus/dbus-server-socket.c b/dbus/dbus-server-socket.c
index bc5e3a9d..3bab5960 100644
--- a/dbus/dbus-server-socket.c
+++ b/dbus/dbus-server-socket.c
@@ -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);
}
diff --git a/dbus/dbus-server-unix.c b/dbus/dbus-server-unix.c
index c7ace2bc..1471cd82 100644
--- a/dbus/dbus-server-unix.c
+++ b/dbus/dbus-server-unix.c
@@ -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:
diff --git a/dbus/dbus-spawn-unix.c b/dbus/dbus-spawn-unix.c
index f3577e70..fb5b4267 100644
--- a/dbus/dbus-spawn-unix.c
+++ b/dbus/dbus-spawn-unix.c
@@ -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;
}
}
diff --git a/dbus/dbus-spawn-win.c b/dbus/dbus-spawn-win.c
index 61961901..c879688d 100644
--- a/dbus/dbus-spawn-win.c
+++ b/dbus/dbus-spawn-win.c
@@ -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;
}
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
index a7856e77..152a3862 100644
--- a/dbus/dbus-sysdeps-unix.c
+++ b/dbus/dbus-sysdeps-unix.c
@@ -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);
}
/**
diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c
index 9b8d1889..44566214 100644
--- a/dbus/dbus-sysdeps-win.c
+++ b/dbus/dbus-sysdeps-win.c
@@ -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;
}
diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
index 0e51b32c..887a0ce6 100644
--- a/dbus/dbus-sysdeps.h
+++ b/dbus/dbus-sysdeps.h
@@ -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,
diff --git a/dbus/dbus-transport-socket.c b/dbus/dbus-transport-socket.c
index fa1307bd..37560b11 100644
--- a/dbus/dbus-transport-socket.c
+++ b/dbus/dbus-transport-socket.c
@@ -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);
}
diff --git a/dbus/dbus-transport-unix.c b/dbus/dbus-transport-unix.c
index 30c3ba44..99822fbf 100644
--- a/dbus/dbus-transport-unix.c
+++ b/dbus/dbus-transport-unix.c
@@ -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;