use Filter;
use Prefix;
use Route;
+use DXLog;
+
use strict;
use vars qw(%channels %valid @ISA $count $maxerrors);
priv => '9,Privilege',
prompt => '0,Required Prompt',
rbnfilter => '5,RBN Filt-out',
+ rbnseeme => '0,RBN See Me,yesno',
redirect => '0,Redirect messages to',
registered => '9,Registered?,yesno',
remotecmd => '9,doing rcmd,yesno',
talk => '0,Want Talk,yesno',
talklist => '0,Talk List,parray',
user => '9,DXUser ref',
+ user_interval => '0,Prompt Idle Time',
ve7cc => '0,VE7CC program special,yesno',
verified => '9,Verified?,yesno',
version => '1,Node Version',
wx => '0,Want WX,yesno',
);
-$maxerrors = 20; # the maximum number of concurrent errors allowed before disconnection
+$maxerrors = 10; # the maximum number of concurrent errors allowed before disconnection
# object destruction
sub DESTROY
$self->{lang} = $main::lang if !$self->{lang};
$self->{func} = "";
$self->{width} ||= 80;
+ $self->{_nospawn} = 0;
# add in all the dxcc, itu, zone info
my @dxcc = Prefix::extract($call);
}
$self->{inqueue} = [];
+ if ($conn) {
+ $self->{hostname} = $self->{conn}->peerhost;
+ $self->{sockhost} = $self->{conn}->sockhost;
+ }
+
$count++;
dbg("DXChannel $self->{call} created ($count)") if isdbg('chan');
bless $self, $pkg;
{
my $self = shift;
my $e = shift;
- if (++$self->{errors} > $maxerrors) {
+ if ($self != $main::me && ++$self->{errors} > $maxerrors) {
$self->send($self->msg('e26'));
+ LogDbg('err', "DXChannel $self->{call}: too many errors ($self->{errors} > $maxerrors), disconnecting");
$self->disconnect;
return ();
} else {
- return ($self->msg($e));
+ return ($e ? $self->msg($e) : '');
}
}
while (my $data = shift @{$self->{inqueue}}) {
my ($sort, $call, $line) = $self->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 ($sort ne 'D') {
+ if (isdbg('chan')) {
+ if (($self->is_rbn && isdbg('rbnchan')) || !$self->is_rbn) {
+ dbg("<- $sort $call $line") if isdbg('chan'); # you may think this is tautology, but it's needed get the correct label on the debug line
+ }
+ }
+ }
# handle A records
my $user = $self->user;