empathy r1754 - trunk/libempathy



Author: xclaesse
Date: Fri Nov 21 16:14:53 2008
New Revision: 1754
URL: http://svn.gnome.org/viewvc/empathy?rev=1754&view=rev

Log:
Fixed _get_local_socket in empathy-file so that it calls connect(2). (Jonny Lamb)

Signed-off-by: Jonny Lamb <jonny lamb collabora co uk>

Modified:
   trunk/libempathy/empathy-file.c

Modified: trunk/libempathy/empathy-file.c
==============================================================================
--- trunk/libempathy/empathy-file.c	(original)
+++ trunk/libempathy/empathy-file.c	Fri Nov 21 16:14:53 2008
@@ -588,12 +588,30 @@
   size_t path_len;
   struct sockaddr_un addr;
   EmpathyFilePriv *priv;
+  GValue *socket_path;
 
   priv = GET_PRIV (file);
 
-  if (priv->unix_socket_path == NULL)
+  /* TODO: This could probably be a little nicer. */
+  tp_cli_dbus_properties_run_get (priv->channel,
+                                  -1,
+                                  EMP_IFACE_CHANNEL_TYPE_FILE,
+                                  "SocketPath",
+                                  &socket_path,
+                                  NULL,
+                                  NULL);
+
+  if (priv->unix_socket_path)
+    g_free (priv->unix_socket_path);
+
+  priv->unix_socket_path = g_value_dup_string (socket_path);
+  g_value_unset (socket_path);
+
+  if (G_STR_EMPTY (priv->unix_socket_path))
     return -1;
 
+  DEBUG ("socket path is %s", priv->unix_socket_path);
+
   fd = socket (PF_UNIX, SOCK_STREAM, 0);
   if (fd < 0)
     return -1;
@@ -604,7 +622,7 @@
   strncpy (addr.sun_path, priv->unix_socket_path, path_len);
 
   if (connect (fd, (struct sockaddr*) &addr,
-      G_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0)
+      sizeof (addr)) < 0)
     {
       close (fd);
       return -1;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]