+
+static afp_child_t *dsi_start(AFPObj *obj, DSI *dsi, server_child *server_children)
+{
+ afp_child_t *child = NULL;
+
+ if (dsi_getsession(dsi, server_children, obj->options.tickleval, &child) != 0) {
+ LOG(log_error, logtype_afpd, "dsi_start: session error: %s", strerror(errno));
+ return NULL;
+ }
+
+ /* we've forked. */
+ if (child == NULL) {
+ configfree(obj, dsi);
+ afp_over_dsi(obj); /* start a session */
+ exit (0);
+ }
+
+ return child;
+}