gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r11883 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r11883 - gnunet/src/util
Date: Tue, 22 Jun 2010 21:45:25 +0200

Author: grothoff
Date: 2010-06-22 21:45:25 +0200 (Tue, 22 Jun 2010)
New Revision: 11883

Modified:
   gnunet/src/util/network.c
Log:
unlink UNIX domain socket filenames

Modified: gnunet/src/util/network.c
===================================================================
--- gnunet/src/util/network.c   2010-06-22 19:33:47 UTC (rev 11882)
+++ gnunet/src/util/network.c   2010-06-22 19:45:25 UTC (rev 11883)
@@ -40,9 +40,19 @@
 {
 #ifndef MINGW
   int fd;
+
+#ifndef LINUX
+  /**
+   * For UNIX domain listen sockets, underlying filename to be removed
+   * on close.
+   */
+  char *filename;
+#endif
+
 #else
   SOCKET fd;
 #endif
+
 };
 
 
@@ -253,7 +263,15 @@
 #ifdef MINGW
   if (SOCKET_ERROR == ret)
     SetErrnoFromWinsockError (WSAGetLastError ());
+#else
+#ifndef LINUX
+  if ( (ret == 0) && (address->sa_family == AF_UNIX))
+    {
+      const struct sockaddr_un *un = (const struct sockaddr_un*) address;
+      desc->filename = GNUNET_strdup (un->sun_path);
+    }
 #endif
+#endif
   return ret == 0 ? GNUNET_OK : GNUNET_SYSERR;
 }
 
@@ -273,7 +291,17 @@
   SetErrnoFromWinsockError (WSAGetLastError ());
 #else
   ret = close (desc->fd);
+#ifndef LINUX
+  if (NULL != desc->filename)
+    {
+      if (0 != unlink (desc->filename))
+       GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                                 "unlink",
+                                 desc->filename);
+      GNUNET_free (desc->filename);
+    }
 #endif
+#endif
   GNUNET_free (desc);
   return (ret == 0) ? GNUNET_OK : GNUNET_SYSERR;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]