src/rrdd.c: Only unlink UNIX domain sockets.
[rrdd.git] / src / rrdd.c
index a9a1e05..6ce6b10 100644 (file)
@@ -506,8 +506,9 @@ static int open_listen_socket_unix (const char *path) /* {{{ */
   }
   
   listen_fds[listen_fds_num].fd = fd;
-  strncpy (listen_fds[listen_fds_num].path, path,
-      sizeof (listen_fds[listen_fds_num].path) - 1);
+  snprintf (listen_fds[listen_fds_num].path,
+      sizeof (listen_fds[listen_fds_num].path) - 1,
+      "unix:%s", path);
   listen_fds_num++;
 
   return (0);
@@ -599,7 +600,8 @@ static int close_listen_sockets (void) /* {{{ */
   for (i = 0; i < listen_fds_num; i++)
   {
     close (listen_fds[i].fd);
-    unlink (listen_fds[i].path);
+    if (strncmp ("unix:", listen_fds[i].path, strlen ("unix:")) == 0)
+      unlink (listen_fds[i].path + strlen ("unix:"));
   }
 
   free (listen_fds);