]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/afp_config.c
Fix regression introduced by previous IPC fds fix
[netatalk.git] / etc / afpd / afp_config.c
index 7f5fd1f1fc9e32d10f3adc16c85da1cfdfdae4b6..29b552d38b641fb77e5ddc131d5138dadd3998c3 100644 (file)
@@ -36,7 +36,7 @@
 #include <atalk/ldapconfig.h>
 #endif
 
-#include "globals.h"
+#include <atalk/globals.h>
 #include "afp_config.h"
 #include "uam_auth.h"
 #include "status.h"
@@ -223,16 +223,8 @@ static afp_child_t *dsi_start(AFPConfig *config, AFPConfig *configs,
     if (!(child = dsi_getsession(dsi,
                                  server_children,
                                  config->obj.options.tickleval))) {
-        LOG(log_error, logtype_afpd, "dsi_start: session error: %s", strerror(errno));
-        return NULL;
-    }
-
-    /* we've forked. */
-    if (parent_or_child == 1) {
+        /* we've forked. */
         configfree(configs, config);
-        config->obj.ipc_fd = child->ipc_fds[1];
-        close(child->ipc_fds[0]); /* Close parent IPC fd */
-        free(child);
         afp_over_dsi(&config->obj); /* start a session */
         exit (0);
     }
@@ -450,6 +442,7 @@ srvloc_reg_err:
 
     config->fd = dsi->serversock;
     config->obj.handle = dsi;
+    dsi->AFPobj = &config->obj;
     config->obj.config = config;
     config->obj.proto = AFPPROTO_DSI;
 
@@ -591,7 +584,7 @@ AFPConfig *configinit(struct afp_options *cmdline)
         first = AFPConfigInit(cmdline, cmdline);
 
     /* Now register with zeroconf, we also need the volumes for that */
-    if ((first->obj.options.flags & OPTION_NOZEROCONF)) {
+    if (first && !(first->obj.options.flags & OPTION_NOZEROCONF)) {
         load_volumes(&first->obj);
         zeroconf_register(first);
     }