]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/dsi/dsi_getsess.c
First try for a volume defaults config
[netatalk.git] / libatalk / dsi / dsi_getsess.c
index 5ea32b01a4afb8bccd46dce7ad76a2656a24880e..5debd0377881372fdccad8402dfc208de0a60a82 100644 (file)
@@ -56,7 +56,7 @@ afp_child_t *dsi_getsession(DSI *dsi, server_child *serv_children, int tickleval
   default: /* parent */
     /* using SIGQUIT is hokey, but the child might not have
      * re-established its signal handler for SIGTERM yet. */
-    if ((child = server_child_add(serv_children, CHILD_DSIFORK, pid, ipc_fds)) < 0) {
+    if ((child = server_child_add(serv_children, CHILD_DSIFORK, pid, ipc_fds)) ==  NULL) {
       LOG(log_error, logtype_dsi, "dsi_getsess: %s", strerror(errno));
       dsi->header.dsi_flags = DSIFL_REPLY;
       dsi->header.dsi_code = DSIERR_SERVBUSY;
@@ -114,9 +114,11 @@ afp_child_t *dsi_getsession(DSI *dsi, server_child *serv_children, int tickleval
     dsi_opensession(dsi);
     if ((child = calloc(1, sizeof(afp_child_t))) == NULL)
         exit(EXITERR_SYS);
+
+    child->ipc_fds[0] = -1;
     child->ipc_fds[1] = ipc_fds[1];
+    close(ipc_fds[0]);
     return child;
-    break;
 
   default: /* just close */
     LOG(log_info, logtype_dsi, "DSIUnknown %d", dsi->header.dsi_command);