diff options
author | Mikael Hallendal <micke@codefactory.se> | 2003-02-19 08:13:31 +0000 |
---|---|---|
committer | Mikael Hallendal <micke@codefactory.se> | 2003-02-19 08:13:31 +0000 |
commit | 6180d6954c41a2412c166e5a9e8a2851cf39c6d1 (patch) | |
tree | 0309901a7c3eede8a578332b9a7b419dc977cfd3 /dbus/dbus-server-unix.c | |
parent | c21511c01ab56d75f3aa4643761e9fd096a7f8be (diff) |
2003-02-19 Mikael Hallendal <micke@codefactory.se>
* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
* dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
Added to create a transport connecting using a tcp/ip socket.
* dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
to a tcp socket at given host and port.
(_dbus_listen_tcp_socket): added to listen on tcp socket for given
hostname and port.
* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
* dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
Added to create a server listening on a TCP/IP socket.
Diffstat (limited to 'dbus/dbus-server-unix.c')
-rw-r--r-- | dbus/dbus-server-unix.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/dbus/dbus-server-unix.c b/dbus/dbus-server-unix.c index 6da70537..a6635ddc 100644 --- a/dbus/dbus-server-unix.c +++ b/dbus/dbus-server-unix.c @@ -264,5 +264,40 @@ _dbus_server_new_for_domain_socket (const char *path, return server; } +/** + * Creates a new server listening on the given hostname and port + * + * @param host the hostname to listen on. + * @param port the port to listen on. + * @param result location to store reason for failure. + * @returns the new server, or #NULL on failure. + */ +DBusServer* +_dbus_server_new_for_tcp_socket (const char *host, + dbus_uint32_t port, + DBusResultCode *result) +{ + DBusServer *server; + int listen_fd; + + listen_fd = _dbus_listen_tcp_socket (host, port, result); + _dbus_fd_set_close_on_exec (listen_fd); + + if (listen_fd < 0) + return NULL; + + server = _dbus_server_new_for_fd (listen_fd); + if (server == NULL) + { + dbus_set_result (result, DBUS_RESULT_NO_MEMORY); + close (listen_fd); + return NULL; + } + + return server; + + +} + /** @} */ |