This will allow to invalidate the socket in the following commit.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
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)))
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");
_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 */
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;
}
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;
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;
}
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;
}
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]);
}
}
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);
}
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);
return server;
failed_2:
- _dbus_close_socket (listen_fd, NULL);
+ _dbus_close_socket (&listen_fd, NULL);
failed_1:
dbus_free (path_copy);
failed_0:
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;
}
}
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;
}
}
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;
}
* @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);
}
/**
* @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 ();
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;
}
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,
free_watches (transport);
- _dbus_close_socket (socket_transport->fd, NULL);
+ _dbus_close_socket (&socket_transport->fd, NULL);
_dbus_socket_invalidate (&socket_transport->fd);
}
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);
}
return transport;
failed_1:
- _dbus_close_socket (fd, NULL);
+ _dbus_close_socket (&fd, NULL);
failed_0:
_dbus_string_free (&address);
return NULL;
failed:
if (fd.fd >= 0)
- _dbus_close_socket (fd, NULL);
+ _dbus_close_socket (&fd, NULL);
_dbus_string_free (&address);
return NULL;