add logging of PC92A ip addresses
[spider.git] / perl / DXProtout.pm
index ec9abaa0b0f2c41e945fd205bb24c6dc7dc883e5..f01a1481cc0a06681bc3ceccc065809f0c63f20e 100644 (file)
@@ -11,7 +11,7 @@
 
 package DXProt;
 
-@ISA = qw(DXProt DXChannel);
+@ISA = qw(DXChannel);
 
 use DXUtil;
 use DXM;
@@ -19,9 +19,10 @@ use DXDebug;
 
 use strict;
 
-use vars qw($sentencelth $pc19_version);
+use vars qw($sentencelth $pc19_version $pc9x_nodupe_first_slot);
 
 $sentencelth = 180;
+$pc9x_nodupe_first_slot = 1;
 
 #
 # All the PCxx generation routines
@@ -378,9 +379,13 @@ sub _gen_pc92
        my $sort = shift;
        my $ext = shift;
        my $s = "PC92^$main::mycall^" . gen_pc9x_t() . "^$sort";
+       if ($pc9x_nodupe_first_slot && ($sort eq 'A' || $sort eq 'D') && $_[0]->call eq $main::mycall) {
+               shift;
+               $s .= '^';
+       }
        for (@_) {
-               $s .= "^" . _encode_pc92_call($_, $ext);
-               $ext = 0;                               # only the first slot has an ext.
+               $s .= '^' . _encode_pc92_call($_, $ext);
+               $ext = 0 unless $sort eq 'A';                           # only the first slot has an ext.
        }
        return $s . '^H99^';
 }
@@ -392,6 +397,10 @@ sub gen_pc92_with_time
        my $t = shift;
        my $ext = 1;
        my $s = "PC92^$call^$t^$sort";
+       if ($pc9x_nodupe_first_slot && ($sort eq 'A' || $sort eq 'D') && $_[0]->call eq $main::mycall) {
+               shift;
+               $s .= '^';
+       }
        for (@_) {
                $s .= "^" . _encode_pc92_call($_, $ext);
        }
@@ -401,7 +410,7 @@ sub gen_pc92_with_time
 # add a local one
 sub pc92a
 {
-       return _gen_pc92('A', 0, @_);
+       return _gen_pc92('A', 2, @_);
 }
 
 # delete a local one
@@ -419,7 +428,12 @@ sub pc92c
 # send a keep alive
 sub pc92k
 {
-       return _gen_pc92('K', 1, @_);
+       my $nref = shift;
+       my $s = "PC92^$main::mycall^" . gen_pc9x_t() . "^K";
+       $s .= "^" . _encode_pc92_call($nref, 1) . ":$main::me->{build}";
+       $s .= "^" . scalar $nref->nodes;
+       $s .= "^" . scalar $nref->users;
+       return $s . '^H99^';
 }
 
 # send a 'find' message