--- trunk/experiments/protocol-v3/server.pl 2009/11/03 17:28:57 173 +++ trunk/experiments/protocol-v3/server.pl 2009/11/03 17:51:27 174 @@ -65,7 +65,7 @@ if ($sock == $lsn) { my $new = $lsn->accept; $sel->add($new); - $session->{$new} = $new->peerport; + $session->{peerport}->{ $new->peerport } = $new; warn "[socket] connect\n"; Storable::store_fd( { ping => 1 }, $new ); info 0 => 'ping', $new->peerport; @@ -80,10 +80,17 @@ warn "<<<< ", dump($data), $/; if ( $data->{repl} ) { my $response = { repl => $$, info => $info }; + if ( $data->{repl} =~ m/ping/ ) { + foreach my $port ( keys %{ $session->{port} } ) { + warn ">>>> [$port]\n"; + Storable::store_fd( { ping => 1 }, $session->{port}->{$port} ); + } + } Storable::store_fd( $response, $sock ); } elsif ( $data->{ping} ) { - $info->{_peer_port}->{$sock->peerport} = $data->{port}; - info $data->{port} => 'peer port', $sock->peerport; + my $port = $data->{port}; + info $port => 'ping', $port; + $session->{port}->{ $data->{port} } = $sock; } } }