X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Futil%2Fserver_child.c;h=47e9baa2549bee28b42cbf1695f855e534476d89;hb=6d60f95c388da5f8f901d67e0018cf4896e6c6dc;hp=1375a63978f945433d906eeea9abec98e5fee699;hpb=ad220cd96d55445846d30b951a188ec5f9b849b2;p=netatalk.git diff --git a/libatalk/util/server_child.c b/libatalk/util/server_child.c index 1375a639..47e9baa2 100644 --- a/libatalk/util/server_child.c +++ b/libatalk/util/server_child.c @@ -320,23 +320,28 @@ void server_child_kill_one_by_id(server_child *children, int forkid, pid_t pid, if ( child->pid != pid) { if (child->idlen == idlen && memcmp(child->clientid, id, idlen) == 0) { if ( child->time != boottime ) { + /* Client rebooted */ if (uid == child->uid) { kill_child(child); - LOG(log_note, logtype_default, "Disconnected child[%u], client rebooted.", child->pid); + LOG(log_warning, logtype_default, + "Terminated disconnected child[%u], client rebooted.", + child->pid); } else { - LOG(log_note, logtype_default, "Session with different pid[%u]", child->pid); + LOG(log_warning, logtype_default, + "Session with different pid[%u]", child->pid); } + } else { + /* One client with multiple sessions */ + LOG(log_debug, logtype_default, + "Found another session[%u] for client[%u]", child->pid, pid); } - if (child->killed) - kill_child(child); /* this will send SIGKILL */ - LOG(log_note, logtype_default, "", child->pid, pid); } } else { /* update childs own slot */ child->time = boottime; if (child->clientid) free(child->clientid); - LOG(log_debug, logtype_default, "Setting client ID for %d", child->pid); + LOG(log_debug, logtype_default, "Setting client ID for %u", child->pid); child->uid = uid; child->valid = 1; child->idlen = idlen;