summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-server.c
diff options
context:
space:
mode:
authorMikael Hallendal <micke@codefactory.se>2003-02-19 08:13:31 +0000
committerMikael Hallendal <micke@codefactory.se>2003-02-19 08:13:31 +0000
commit6180d6954c41a2412c166e5a9e8a2851cf39c6d1 (patch)
tree0309901a7c3eede8a578332b9a7b419dc977cfd3 /dbus/dbus-server.c
parentc21511c01ab56d75f3aa4643761e9fd096a7f8be (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.c')
-rw-r--r--dbus/dbus-server.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/dbus/dbus-server.c b/dbus/dbus-server.c
index 862aead5..fd03423e 100644
--- a/dbus/dbus-server.c
+++ b/dbus/dbus-server.c
@@ -19,7 +19,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- */
+ */
+#include <stdlib.h>
#include "dbus-server.h"
#include "dbus-server-unix.h"
#ifdef DBUS_BUILD_TESTS
@@ -228,6 +229,29 @@ dbus_server_listen (const char *address,
if (server)
break;
}
+ else if (strcmp (method, "tcp") == 0)
+ {
+ const char *host = dbus_address_entry_get_value (entries[i], "host");
+ const char *port = dbus_address_entry_get_value (entries[i], "port");
+ DBusString str;
+ long lport;
+ dbus_bool_t sresult;
+
+ if (port == NULL)
+ goto bad_address;
+
+ _dbus_string_init_const (&str, port);
+ sresult = _dbus_string_parse_int (&str, 0, &lport, NULL);
+ _dbus_string_free (&str);
+
+ if (sresult == FALSE || lport <= 0 || lport > 65535)
+ goto bad_address;
+
+ server = _dbus_server_new_for_tcp_socket (host, lport, result);
+
+ if (server)
+ break;
+ }
#ifdef DBUS_BUILD_TESTS
else if (strcmp (method, "debug") == 0)
{