$mself->{net_server}->{server}->{peerport}
);
- my $conn_id = "$peeraddr:$peerport";
+ my $conn_id = $mself->{conn_id};
+ if (!$conn_id) {
+ $mself->{conn_id} = $conn_id = "$peeraddr:$peerport\@" . time();
+ }
# check for kids that went away
REAPER();
} else {
push(@pending_connections, $pid);
+ $kid_hash{$pid} = 1;
+ $kid_count++;
}
# nothing else for the parent to do until login completes
# client disconnected, remove the active connection
sub mux_close {
my ($self, $mux, $fh) = @_;
- my ($peeraddr, $peerport) = (
- $self->{net_server}->{server}->{peeraddr},
- $self->{net_server}->{server}->{peerport}
- );
-
- my $conn_id = "$peeraddr:$peerport";
+ my $conn_id = $self->{conn_id};
delete $active_connections{$conn_id};
syslog("LOG_DEBUG", "multi: mux_close cleaning up child: $conn_id; ".