[glib] gsocketaddress: don't return ABSTRACT if the OS doesn't support it



commit 06b23e2b5416e994d29560436587a04b762e21cd
Author: Dan Winship <danw gnome org>
Date:   Sat Aug 27 12:08:32 2011 -0400

    gsocketaddress: don't return ABSTRACT if the OS doesn't support it
    
    FreeBSD apparently has non-0-length (but nameless) ANONYMOUS sockets.
    Fix the heuristics here.

 gio/gsocketaddress.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gio/gsocketaddress.c b/gio/gsocketaddress.c
index d4dcbb0..5d4ed26 100644
--- a/gio/gsocketaddress.c
+++ b/gio/gsocketaddress.c
@@ -260,7 +260,12 @@ g_socket_address_new_from_native (gpointer native,
 	}
       else if (addr->sun_path[0] == 0)
 	{
-	  if (len < sizeof (*addr))
+	  if (!g_unix_socket_address_abstract_names_supported ())
+	    {
+	      return g_unix_socket_address_new_with_type ("", 0,
+							  G_UNIX_SOCKET_ADDRESS_ANONYMOUS);
+	    }
+	  else if (len < sizeof (*addr))
 	    {
 	      return g_unix_socket_address_new_with_type (addr->sun_path + 1,
 							  path_len - 1,



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