tried to sort out last in
[spider.git] / perl / DXProt.pm
index 7cde642c00206f806f3232e0d6f25b3a394d48b6..ce9b13a4b077c61cd0c8568784f768061f992081 100644 (file)
@@ -116,8 +116,9 @@ sub start
        $self->{wwvfilter} = Filter::read_in('wwv', $call);
        $self->{annfilter} = Filter::read_in('ann', $call);
        
-       # set unbuffered
+       # set unbuffered and no echo
        $self->send_now('B',"0");
+       $self->send_now('E',"0");
        
        # send initialisation string
        if (!$self->{outbound}) {
@@ -325,7 +326,7 @@ sub normal
                                $user = DXUser->new($call) if !$user;
                                $user->homenode($node->call) if !$user->homenode;
                                $user->node($node->call);
-                               $user->lastin($main::systime);
+                               $user->lastin($main::systime) unless DXChannel->get($call);
                                $user->put;
                        }
                        
@@ -378,7 +379,7 @@ sub normal
                                        $user->homenode($call);
                                        $user->node($call);
                                }
-                               $user->lastin($main::systime);
+                               $user->lastin($main::systime) unless DXChannel->get($call);
                                $user->put;
                        }
                        
@@ -737,7 +738,7 @@ sub send_dx_spot
                        }
                } elsif ($dxchan->is_user && $dxchan->{dx}) {
                        my $buf = Spot::formatb($_[0], $_[1], $_[2], $_[3], $_[4]);
-                       $buf .= "\a\a" if $dxchan->beep;
+                       $buf .= "\a\a" if $dxchan->{beep};
                        if ($dxchan->{state} eq 'prompt' || $dxchan->{state} eq 'convers') {
                                $dxchan->send($buf) if !$hops || ($hops && $filter);
                        } else {