-/* -*- mode: C; c-file-style: "gnu" -*- */
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* dbus-server-debug-pipe.c In-proc debug server implementation
*
* Copyright (C) 2003 CodeFactory AB
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+#include <config.h>
#include "dbus-internals.h"
#include "dbus-server-debug-pipe.h"
#include "dbus-transport-socket.h"
#include "dbus-string.h"
#include "dbus-protocol.h"
-#ifdef DBUS_BUILD_TESTS
+#ifdef DBUS_ENABLE_EMBEDDED_TESTS
/**
* @defgroup DBusServerDebugPipe DBusServerDebugPipe
goto nomem_2;
if (!_dbus_server_init_base (&debug_server->base,
- &debug_vtable, &address))
- goto nomem_3;
+ &debug_vtable, &address,
+ error))
+ goto fail_3;
if (!_dbus_hash_table_insert_string (server_pipe_hash,
debug_server->name,
_dbus_string_free (&address);
/* server keeps the pipe hash ref */
-
+
+ _dbus_server_trace_ref (&debug_server->base, 0, 1, "debug_pipe_new");
return (DBusServer *)debug_server;
nomem_4:
_dbus_server_finalize_base (&debug_server->base);
- nomem_3:
+ fail_3:
dbus_free (debug_server->name);
nomem_2:
_dbus_string_free (&address);
dbus_free (debug_server);
nomem_0:
pipe_hash_unref ();
- dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL);
+ if (error != NULL && !dbus_error_is_set (error))
+ _DBUS_SET_OOM (error);
return NULL;
}
DBusTransport *client_transport;
DBusTransport *server_transport;
DBusConnection *connection;
- int client_fd, server_fd;
+ DBusSocket client_fd, server_fd;
DBusServer *server;
DBusString address;
return NULL;
}
- if (!_dbus_full_duplex_pipe (&client_fd, &server_fd, FALSE,
- NULL))
+ if (!_dbus_socketpair (&client_fd, &server_fd, FALSE, NULL))
{
_dbus_verbose ("failed to create full duplex pipe\n");
dbus_set_error (error, DBUS_ERROR_FAILED, "Could not create full-duplex pipe");
return NULL;
}
- _dbus_fd_set_close_on_exec (client_fd);
- _dbus_fd_set_close_on_exec (server_fd);
-
client_transport = _dbus_transport_new_for_socket (client_fd,
NULL, &address);
if (client_transport == NULL)
_dbus_string_free (&address);
- client_fd = -1;
+ _dbus_socket_invalidate (&client_fd);
server_transport = _dbus_transport_new_for_socket (server_fd,
&server->guid_hex, NULL);
return NULL;
}
- server_fd = -1;
+ _dbus_socket_invalidate (&server_fd);
if (!_dbus_transport_set_auth_mechanisms (server_transport,
(const char**) server->auth_mechanisms))
/** @} */
-#endif /* DBUS_BUILD_TESTS */
+#endif /* DBUS_ENABLE_EMBEDDED_TESTS */