projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove origin node from Spot Dupes as default
[spider.git]
/
perl
/
DXChannel.pm
diff --git
a/perl/DXChannel.pm
b/perl/DXChannel.pm
index 56b96faa126d91d1b3256d7bba8944dfc453402b..1a98c7950ad906c1e99541515bb47ac61aaa3a0c 100644
(file)
--- a/
perl/DXChannel.pm
+++ b/
perl/DXChannel.pm
@@
-33,6
+33,8
@@
use DXDebug;
use Filter;
use Prefix;
use Route;
use Filter;
use Prefix;
use Route;
+use DXLog;
+
use strict;
use vars qw(%channels %valid @ISA $count $maxerrors);
use strict;
use vars qw(%channels %valid @ISA $count $maxerrors);
@@
-50,6
+52,8
@@
$count = 0;
beep => '0,Want Beeps,yesno',
build => '1,Node Build',
call => '0,Callsign',
beep => '0,Want Beeps,yesno',
build => '1,Node Build',
call => '0,Callsign',
+ cmdcount => '5,Cmds in cmdinterval',
+ cmdintstart => '5,Cmd int start,atime',
cluster => '5,Cluster data',
conf => '0,In Conference?,yesno',
conn => '9,Msg Conn ref',
cluster => '5,Cluster data',
conf => '0,In Conference?,yesno',
conn => '9,Msg Conn ref',
@@
-64,7
+68,7
@@
$count = 0;
enhanced => '5,Enhanced Client,yesno',
errors => '9,Errors',
func => '5,Function',
enhanced => '5,Enhanced Client,yesno',
errors => '9,Errors',
func => '5,Function',
- group => '0,Access Group,parray',
# used to create a group of users/nodes for some purpose or other.
+ group => '0,Access Group,parray',
gtk => '5,Using GTK,yesno',
handle_xml => '9,Handles XML,yesno',
here => '0,Here?,yesno',
gtk => '5,Using GTK,yesno',
handle_xml => '9,Handles XML,yesno',
here => '0,Here?,yesno',
@@
-124,6
+128,7
@@
$count = 0;
talk => '0,Want Talk,yesno',
talklist => '0,Talk List,parray',
user => '9,DXUser ref',
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',
ve7cc => '0,VE7CC program special,yesno',
verified => '9,Verified?,yesno',
version => '1,Node Version',
@@
-135,7
+140,7
@@
$count = 0;
wx => '0,Want WX,yesno',
);
wx => '0,Want WX,yesno',
);
-$maxerrors =
2
0; # the maximum number of concurrent errors allowed before disconnection
+$maxerrors =
1
0; # the maximum number of concurrent errors allowed before disconnection
# object destruction
sub DESTROY
# object destruction
sub DESTROY
@@
-175,6
+180,7
@@
sub alloc
$self->{lang} = $main::lang if !$self->{lang};
$self->{func} = "";
$self->{width} ||= 80;
$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);
# add in all the dxcc, itu, zone info
my @dxcc = Prefix::extract($call);
@@
-185,7
+191,10
@@
sub alloc
}
$self->{inqueue} = [];
}
$self->{inqueue} = [];
- $self->{hostname} = $self->{conn}->peerhost if $conn;
+ if ($conn) {
+ $self->{hostname} = $self->{conn}->peerhost;
+ $self->{sockhost} = $self->{conn}->sockhost;
+ }
$count++;
dbg("DXChannel $self->{call} created ($count)") if isdbg('chan');
$count++;
dbg("DXChannel $self->{call} created ($count)") if isdbg('chan');
@@
-200,12
+209,13
@@
sub _error_out
{
my $self = shift;
my $e = shift;
{
my $self = shift;
my $e = shift;
- if (++$self->{errors} > $maxerrors) {
+ if (
$self != $main::me &&
++$self->{errors} > $maxerrors) {
$self->send($self->msg('e26'));
$self->send($self->msg('e26'));
+ LogDbg('err', "DXChannel $self->{call}: too many errors ($self->{errors} > $maxerrors), disconnecting");
$self->disconnect;
return ();
} else {
$self->disconnect;
return ();
} else {
- return ($
self->msg($e)
);
+ return ($
e ? $self->msg($e) : ''
);
}
}
}
}
@@
-803,6
+813,17
@@
sub isregistered
}
}
}
}
+# try to replace the in-core version of the dxchan with the one that has been modified with items like filters
+sub replace
+{
+ my $self = shift;
+ my $call = shift;
+ if (ref $self) {
+ $call ||= $self->{call};
+ $channels{$call} = $self;
+ }
+}
+
#no strict;
sub AUTOLOAD
{
#no strict;
sub AUTOLOAD
{