fix ping handling better
[spider.git] / perl / DXXml / Ping.pm
index a9d72083c213df926ef80157c83453973ac9c7fe..1e7aea6fb85d219be60ee3fceadf87313256043b 100644 (file)
@@ -37,6 +37,7 @@ sub handle_input
                                                                           oid=>$self->{id},
                                                                           ot=>$self->{t}
                                                                          );
+                       $dxchan->send($rep->toxml);
                } else {
                        handle_ping_reply($dxchan, $self->{o}, $self->{ot}, $self->{oid});
                }
@@ -62,7 +63,7 @@ sub add
        my $ref = $pings{$to} || [];
        my $r = {};
        my $self = DXXml::Ping->new(to=>$to, '-hirestime'=>[ gettimeofday ], s=>'1');
-       $self->{u} = $from unless $from eq $main::mycall;
+       $self->{u} = $from;
        $self->{'-via'} = $via if $via && DXChannel::get($via);
        $self->{o} = $main::mycall;
        $self->{id} = $self->nextid;
@@ -97,7 +98,7 @@ sub handle_ping_reply
        my $tochan = DXChannel::get($from);
        while (@$ref) {
                my $r = shift @$ref;
-               my $dxchan = DXChannel::get($r->{to});
+               my $dxchan = DXChannel::get($r->{u});
                next unless $dxchan;
                my $t = tv_interval($r->{'-hirestime'}, [ gettimeofday ]);
                if ($dxchan->is_user) {