small change to something never used/tested much ... cserve2 - FAIL if
authorCarsten Haitzler <raster@rasterman.com>
Wed, 13 Feb 2013 11:32:30 +0000 (11:32 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Wed, 13 Feb 2013 11:32:30 +0000 (11:32 +0000)
an existing cserve 2 client is there.

SVN revision: 83866

src/bin/evas/evas_cserve2_main_loop_linux.c

index afd678e..0fd40ea 100644 (file)
@@ -253,13 +253,22 @@ _socketfd_setup(void)
    socket_local.sun_family = AF_UNIX;
    _socket_path_set(socket_local.sun_path);
    DBG("Using '%s' as server socket.", socket_local.sun_path);
-   unlink(socket_local.sun_path);
    len = strlen(socket_local.sun_path) + sizeof(socket_local.sun_family);
    if (bind(s, (struct sockaddr *)&socket_local, len) == -1)
      {
-        ERR("Could not bind socketfd: \"%s\"", strerror(errno));
-        close(s);
-        return -1;
+        if (connect(s, (struct sockaddr *)&socket_local, len) != -1)
+          {
+             ERR("cserve2 service already there: \"%s\"", strerror(errno));
+             close(s);
+             return -1;
+          }
+        unlink(socket_local.sun_path);
+        if (bind(s, (struct sockaddr *)&socket_local, len) == -1)
+          {
+             ERR("Could not bind socketfd: \"%s\"", strerror(errno));
+             close(s);
+             return -1;
+          }
      }
 
    if (listen(s, MAX_INCOMING_CONN) == -1)