X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXChannel.pm;h=f2a1638cdf0c101817bc92a8aa22c795472bf43b;hb=edc4edfd6dce0f2f76c03cb651bc49ba268ef03c;hp=69a72abe9e1d4438118f991b5e3b86f515206099;hpb=8b21846900b9f840da86fef72e6ee86ac56cfb53;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index 69a72abe..f2a1638c 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -80,11 +80,13 @@ $count = 0; wcyfilter => '5,WCY Filt-out', spotsfilter => '5,Spot Filt-out', routefilter => '5,Route Filt-out', + pc92filter => '5,PC92 Route Filt-out', inannfilter => '5,Ann Filt-inp', inwwvfilter => '5,WWV Filt-inp', inwcyfilter => '5,WCY Filt-inp', inspotsfilter => '5,Spot Filt-inp', inroutefilter => '5,Route Filt-inp', + inpc92filter => '5,PC92 Route Filt-inp', passwd => '9,Passwd List,yesno', pingint => '5,Ping Interval ', nopings => '5,Ping Obs Count', @@ -157,12 +159,15 @@ sub alloc $user->new_buddies unless $user->buddies; $self->{group} = $user->group; $self->{sort} = $user->sort; + $self->{width} = $user->width; } $self->{startt} = $self->{t} = time; $self->{state} = 0; $self->{oldstate} = 0; $self->{lang} = $main::lang if !$self->{lang}; $self->{func} = ""; + $self->{width} ||= 80; + # add in all the dxcc, itu, zone info my @dxcc = Prefix::extract($call); @@ -697,17 +702,14 @@ sub broadcast_list sub process { foreach my $dxchan (get_all()) { - + next if $dxchan->{disconnecting}; + while (my $data = shift @{$dxchan->{inqueue}}) { my ($sort, $call, $line) = $dxchan->decode_input($data); next unless defined $sort; # do the really sexy console interface bit! (Who is going to do the TK interface then?) dbg("<- $sort $call $line") if $sort ne 'D' && isdbg('chan'); - if ($dxchan->{disconnecting}) { - dbg('In disconnection, ignored'); - next; - } # handle A records my $user = $dxchan->user; @@ -722,6 +724,8 @@ sub process $dxchan->disconnect; } elsif ($sort eq 'D') { ; # ignored (an echo) + } elsif ($sort eq 'C') { + $dxchan->width($line); # change number of columns } elsif ($sort eq 'G') { $dxchan->enhanced($line); } else { @@ -744,6 +748,20 @@ sub handle_xml return $r; } +sub registered +{ + my $self = shift; + + # the sysop is registered! + return 1 if $self->call eq $main::myalias || $self->call eq $main::mycall; + + if ($main::reqreg) { + return $self->{registered}; + } else { + return 1; + } +} + #no strict; sub AUTOLOAD {