X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Fdsi%2Fdsi_getsess.c;h=5debd0377881372fdccad8402dfc208de0a60a82;hb=d525573d235fbbba664d69e90450c7b82eb05835;hp=221ac47af76d50f4a01f777d8e17979207d1d578;hpb=1a6013c7ecd313e03eee1192d54bee624d4a9293;p=netatalk.git diff --git a/libatalk/dsi/dsi_getsess.c b/libatalk/dsi/dsi_getsess.c index 221ac47a..5debd037 100644 --- a/libatalk/dsi/dsi_getsess.c +++ b/libatalk/dsi/dsi_getsess.c @@ -18,18 +18,8 @@ #include #include -/* POSIX.1 sys/wait.h check */ #include -#ifdef HAVE_SYS_WAIT_H #include -#endif /* HAVE_SYS_WAIT_H */ -#ifndef WEXITSTATUS -#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) -#endif /* ! WEXITSTATUS */ -#ifndef WIFEXITED -#define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif /* ! WIFEXITED */ - #include #include #include @@ -66,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; @@ -124,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);