]> arthur.barton.de Git - netatalk.git/commitdiff
Make IPC reconnect block, switch to non-blocking IO after connect.
authorFrank Lahm <franklahm@googlemail.com>
Thu, 11 Aug 2011 12:08:36 +0000 (14:08 +0200)
committerFrank Lahm <franklahm@googlemail.com>
Thu, 11 Aug 2011 12:08:36 +0000 (14:08 +0200)
libatalk/util/server_ipc.c

index 659f5a704ef779410bc8ed5160e4165d3563b5f8..2a3e37be4cac8977c5644d85233a2bf8468c66ce 100644 (file)
@@ -159,13 +159,14 @@ int ipc_client_uds(const char *name)
     pid_t pid = getpid();
 
     EC_NEG1_LOG( fd = socket(PF_UNIX, SOCK_STREAM, 0) );
-    EC_ZERO_LOG( setnonblock(fd, 1) );
     address.sun_family = AF_UNIX;
     address_length = sizeof(address.sun_family) + sprintf(address.sun_path, name);
 
     EC_ZERO_LOG( connect(fd, (struct sockaddr *)&address, address_length) ); /* 1 */
     LOG(log_debug, logtype_afpd, "ipc_client_uds: connected to master");
 
+    EC_ZERO_LOG( setnonblock(fd, 1) );
+
     if (writet(fd, &pid, sizeof(pid_t), 0, 1) != sizeof(pid_t)) {
         LOG(log_error, logtype_afpd, "ipc_client_uds: writet: %s", strerror(errno));
         EC_FAIL;