projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed duplicate spot, always make clean ending
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index e0db5fa7c8a11cf92a98fd1e9b5bf532269861de..3c4b49f3d7d344fc1dc83825402d45beeed06cfd 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-33,6
+33,7
@@
use Route;
use Route::Node;
use Script;
use DXProtHandle;
use Route::Node;
use Script;
use DXProtHandle;
+use DXCIDR;
use strict;
use strict;
@@
-246,8
+247,9
@@
sub init
$main::me->{pingave} = 0;
$main::me->{registered} = 1;
$main::me->{version} = $main::version;
$main::me->{pingave} = 0;
$main::me->{registered} = 1;
$main::me->{version} = $main::version;
- $main::me->{build} =
"$main::subversion.$main::build"
;
+ $main::me->{build} =
$main::build
;
$main::me->{do_pc9x} = 1;
$main::me->{do_pc9x} = 1;
+ $main::me->{hostname} = $main::clusteraddr;
$main::me->update_pc92_next($pc92_short_update_period);
$main::me->update_pc92_keepalive;
}
$main::me->update_pc92_next($pc92_short_update_period);
$main::me->update_pc92_keepalive;
}
@@
-288,7
+290,9
@@
sub start
# log it
my $host = $self->{conn}->peerhost;
$host ||= "AGW Port #$self->{conn}->{agwport}" if exists $self->{conn}->{agwport};
# log it
my $host = $self->{conn}->peerhost;
$host ||= "AGW Port #$self->{conn}->{agwport}" if exists $self->{conn}->{agwport};
+ $host ||= $host if is_ipaddr($host);
$host ||= "unknown";
$host ||= "unknown";
+ $self->{hostname} = $host;
Log('DXProt', "$call connected from $host");
Log('DXProt', "$call connected from $host");
@@
-430,9
+434,9
@@
sub normal
my $sub = "handle_$pcno";
if ($self->can($sub)) {
my $sub = "handle_$pcno";
if ($self->can($sub)) {
- $self->$sub($pcno, $line, $origin, @field);
+ $self->$sub($pcno, $line, $origin,
\
@field);
} else {
} else {
- $self->handle_default($pcno, $line, $origin, @field);
+ $self->handle_default($pcno, $line, $origin,
\
@field);
}
}
}
}
@@
-553,6
+557,8
@@
sub send_dx_spot
foreach $dxchan (@dxchan) {
next if $dxchan == $main::me;
next if $dxchan == $self && $self->is_node;
foreach $dxchan (@dxchan) {
next if $dxchan == $main::me;
next if $dxchan == $self && $self->is_node;
+ next if $dxchan == $self;
+
if ($line =~ /PC61/ && !($dxchan->is_spider || $dxchan->is_user)) {
unless ($pc11) {
my @f = split /\^/, $line;
if ($line =~ /PC61/ && !($dxchan->is_spider || $dxchan->is_user)) {
unless ($pc11) {
my @f = split /\^/, $line;
@@
-955,7
+961,8
@@
sub broadcast_pc92_update
my $nref = Route::Node::get($call);
unless ($nref) {
my $nref = Route::Node::get($call);
unless ($nref) {
- dbg("ERROR: broadcast_pc92_update - Route::Node $call disappeared");
+ cluck("ERROR: broadcast_pc92_update - Route::Node $call disappeared");
+ $self->update_pc92_next;
return;
}
my $l = $nref->last_PC92C(gen_my_pc92_config($nref));
return;
}
my $l = $nref->last_PC92C(gen_my_pc92_config($nref));
@@
-973,7
+980,8
@@
sub broadcast_pc92_keepalive
my $nref = Route::Node::get($call);
unless ($nref) {
my $nref = Route::Node::get($call);
unless ($nref) {
- dbg("ERROR: broadcast_pc92_keepalive - Route::Node $call disappeared");
+ cluck("ERROR: broadcast_pc92_keepalive - Route::Node $call disappeared");
+ $self->update_pc92_keepalive;
return;
}
my $l = pc92k($nref);
return;
}
my $l = pc92k($nref);
@@
-1111,13
+1119,13
@@
sub process_rcmd
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) {
my $ref = DXUser::get_current($fromnode);
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) {
my $ref = DXUser::get_current($fromnode);
- unless ($ref && UNIVERSAL($ref, 'DXUser')) {
+ unless ($ref && UNIVERSAL
::isa
($ref, 'DXUser')) {
dbg("DXProt process_rcmd: user $fromnode isn't a reference (check user_asc and tell G1TLH)");
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
return;
}
my $cref = Route::Node::get($fromnode);
dbg("DXProt process_rcmd: user $fromnode isn't a reference (check user_asc and tell G1TLH)");
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
return;
}
my $cref = Route::Node::get($fromnode);
- unless ($cref && UNIVERSAL($cref, 'Route')) {
+ unless ($cref && UNIVERSAL
::isa
($cref, 'Route')) {
dbg("DXProt process_rcmd: Route $fromnode isn't a reference (tell G1TLH)");
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
return;
dbg("DXProt process_rcmd: Route $fromnode isn't a reference (tell G1TLH)");
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
return;