[telepathy-salut/master] gibber-listener: create a GibberUnixTransport if the socket is a UNIX one

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon May 11 09:28:31 PDT 2009


---
 lib/gibber/gibber-listener.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/gibber/gibber-listener.c b/lib/gibber/gibber-listener.c
index dedc2b6..6b15446 100644
--- a/lib/gibber/gibber-listener.c
+++ b/lib/gibber/gibber-listener.c
@@ -33,6 +33,7 @@
 
 #include "gibber-listener.h"
 #include "gibber-fd-transport.h"
+#include "gibber-unix-transport.h"
 #include "gibber-util.h"
 
 #define DEBUG_FLAG DEBUG_NET
@@ -186,11 +187,10 @@ listener_io_in_cb (GIOChannel *source,
   nfd = accept (fd, (struct sockaddr *) &addr, &addrlen);
   gibber_normalize_address (&addr);
 
-  transport = g_object_new (GIBBER_TYPE_FD_TRANSPORT, NULL);
-  gibber_fd_transport_set_fd (transport, nfd);
-
   if (addr.ss_family == AF_UNIX)
     {
+      transport = GIBBER_FD_TRANSPORT (gibber_unix_transport_new_from_fd (nfd));
+
       /* UNIX sockets doesn't have port */
       ret = getnameinfo ((struct sockaddr *) &addr, addrlen,
           host, NI_MAXHOST, NULL, 0,
@@ -200,6 +200,9 @@ listener_io_in_cb (GIOChannel *source,
     }
   else
     {
+      transport = g_object_new (GIBBER_TYPE_FD_TRANSPORT, NULL);
+      gibber_fd_transport_set_fd (transport, nfd);
+
       ret = getnameinfo ((struct sockaddr *) &addr, addrlen,
           host, NI_MAXHOST, port, NI_MAXSERV,
           NI_NUMERICHOST | NI_NUMERICSERV);
-- 
1.5.6.5



More information about the telepathy-commits mailing list