add an RBN line to progress
[spider.git] / perl / DXChannel.pm
index fbdbeee310bf430b5bac3d5f7282347916f47b04..2c82b1371fd31c4367e05521c1eab1fb4876777a 100644 (file)
@@ -161,7 +161,7 @@ sub alloc
                $self->{group} = $user->group;
                $self->{sort} = $user->sort;
        }
-       $self->{startt} = $self->{t} = time;
+       $self->{startt} = $self->{t} = $main::systime;
        $self->{state} = 0;
        $self->{oldstate} = 0;
        $self->{lang} = $main::lang if !$self->{lang};
@@ -427,7 +427,7 @@ sub send                                            # this is always later and always data
        my $call = $self->{call};
 
        foreach my $l (@_) {
-               for (ref $l ? @$l : $l) {
+               for (ref($l) eq 'ARRAY' ? @$l : $l) {
                        my @lines = split /\n/;
                        for (@lines) {
                                $conn->send_later("D$call|$_");
@@ -497,7 +497,7 @@ sub disconnect
        my $self = shift;
        my $user = $self->{user};
        
-       $user->close() if defined $user;
+       $user->close($self->{startt}, $self->{hostname}) if defined $user;
        $self->{conn}->disconnect if $self->{conn};
        $self->del();
 }
@@ -679,6 +679,11 @@ sub broadcast_list
                        ($filter) = $dxchan->{spotsfilter}->it(@{$fref}) if ref $fref;
                        next unless $filter;
                }
+               if ($sort eq 'rbn') {
+                   next unless $dxchan->{dx}; # this is deliberate!
+                       ($filter) = $dxchan->{spotsfilter}->it(@{$fref}) if ref $fref;
+                       next unless $filter;
+               }
                next if $sort eq 'ann' && !$dxchan->{ann} && $s !~ /^To\s+LOCAL\s+de\s+(?:$main::myalias|$main::mycall)/i;
                next if $sort eq 'wwv' && !$dxchan->{wwv};
                next if $sort eq 'wcy' && !$dxchan->{wcy};