From 5581dc5f6f57c59b9eeb4955f3c13e9cf5bd93eb Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Thu, 14 Aug 2014 16:04:31 -0400 Subject: [PATCH] LP#1339190 alternate connnection ID tracking; reap login proc kids Signed-off-by: Bill Erickson --- SIPServer.pm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SIPServer.pm b/SIPServer.pm index f0837d7..5dd402f 100755 --- a/SIPServer.pm +++ b/SIPServer.pm @@ -291,7 +291,10 @@ sub mux_input { $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(); @@ -403,6 +406,8 @@ sub mux_input { } else { push(@pending_connections, $pid); + $kid_hash{$pid} = 1; + $kid_count++; } # nothing else for the parent to do until login completes @@ -459,12 +464,7 @@ sub mux_input { # 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; ". -- 2.11.0