X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=9831e3965c4d47ee17797b550772ee1d6cf5d9ee;hb=2c10c7a8dbbd04bd0021cfc650d20f81b9df887c;hp=5fb684189dc67811db0e8df4eb9aafce30cbf8db;hpb=a9b7071fedfdb2150f3ef3d74e0d626b4f2dc0ea;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 5fb68418..9831e396 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -80,6 +80,7 @@ sub start } $self->state('init'); $self->pc50_t(time); + Log('DXProt', "$call connected"); } @@ -204,6 +205,7 @@ sub normal last SWITCH if !$node; # ignore if havn't seen a PC19 for this one yet my $i; + for ($i = 2; $i < $#field; $i++) { my ($call, $confmode, $here) = $field[$i] =~ /^(\S+) (-) (\d)/o; next if length $call < 3; @@ -218,8 +220,9 @@ sub normal $call =~ s/-\d+$//o; # remove ssid for users my $user = DXUser->get_current($call); $user = DXUser->new($call) if !$user; - $user->node($node->call); $user->homenode($node->call) if !$user->homenode; + $user->node($node->call); + $user->lastin($main::systime); $user->put; } @@ -267,10 +270,11 @@ sub normal if (!$user) { $user = DXUser->new($call); $user->sort('A'); - $user->node($call); $user->homenode($call); - $user->put; + $user->node($call); } + $user->lastin($main::systime); + $user->put; } # queue up any messages @@ -388,13 +392,9 @@ sub normal } elsif ($field[2] == 2) { $user->qth($field[3]); } elsif ($field[2] == 3) { - my ($latd, $latm, $latl, $longd, $longm, $longl) = split /\s+/, $field[3]; - $longd += ($longm/60); - $longd = 0-$longd if (uc $longl) eq 'W'; - $user->long($longd); - $latd += ($latm/60); - $latd = 0-$latd if (uc $latl) eq 'S'; - $user->lat($latd); + my ($lat, $long) = DXBearing::stoll($field[3]); + $user->lat($lat); + $user->long($long); } elsif ($field[2] == 4) { $user->homenode($field[3]); } @@ -532,6 +532,7 @@ sub finish # now broadcast to all other ak1a nodes that I have gone broadcast_ak1a(pc21($call, 'Gone.'), $self); + Log('DXProt', $call . " Disconnected"); $ref->del() if $ref; }