Index: filed.c ================================================================== --- filed.c +++ filed.c @@ -1025,10 +1025,20 @@ /* Failure loop prevention */ if (failure_count > max_failure_count) { break; } + /* Allocate a new log buffer */ + log = filed_log_new(1); + if (log == NULL) { + filed_log_msg("ALLOCATE_LOG_MSG_FAILED"); + + break; + } + + log->type = FILED_LOG_TYPE_TRANSFER; + /* Accept a new client */ addrlen = sizeof(addr); fd = accept(master_fd, (struct sockaddr *) &addr, &addrlen); /* @@ -1042,23 +1052,17 @@ failure_count++; continue; } - /* Log the new connection */ - log = filed_log_new(1); - if (log == NULL) { - close(fd); - - continue; - } - - log->type = FILED_LOG_TYPE_TRANSFER; + /* Fill in log structure */ if (filed_log_ip((struct sockaddr *) &addr, log->ip, sizeof(log->ip)) == NULL) { log->ip[0] = '\0'; + log->port = 0; + } else { + log->port = addr.sin6_port; } - log->port = addr.sin6_port; /* Reset failure count*/ failure_count = 0; /* Handle socket */