X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=41c38f1aea9fd62a850934ee882fccd79fadc265;hb=9d7e25628dc86c6bec2e0eba47e772f95c0c76db;hp=53ca8ea37131662cbc0e3583e510c240eace6905;hpb=9b47e7023d41616a9efa885ef9338277dc2ab851;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 53ca8ea3..41c38f1a 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -50,7 +50,8 @@ use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restim $investigation_int $pc19_version $myprot_version %nodehops $baddx $badspotter $badnode $censorpc $rspfcheck $allowzero $decode_dk0wcy $send_opernam @checklist - $handle_xml); + $eph_pc15_restime + ); $pc11_max_age = 1*3600; # the maximum age for an incoming 'real-time' pc11 $pc23_max_age = 1*3600; # the maximum age for an incoming 'real-time' pc23 @@ -70,6 +71,7 @@ $ann_to_talk = 1; $rspfcheck = 1; $eph_restime = 180; $eph_info_restime = 60*60; +$eph_pc15_restime = 6*60; $eph_pc34_restime = 30; $pingint = 5*60; $obscount = 2; @@ -77,7 +79,6 @@ $chatdupeage = 20 * 60 * 60; $chatimportfn = "$main::root/chat_import"; $investigation_int = 12*60*60; # time between checks to see if we can see this node $pc19_version = 5466; # the visible version no for outgoing PC19s generated from pc59 -$handle_xml = 0; # handle XML sentences @checklist = ( @@ -333,7 +334,7 @@ sub normal { my ($self, $line) = @_; - if ($line =~ '^<\w+\s') { + if ($line =~ '^<\w+\s' && $main::do_xml) { DXXml::normal($self, $line); return; } @@ -700,6 +701,23 @@ sub handle_12 $self->route($_[2], $line); } } + + +sub handle_15 +{ + my $self = shift; + my $pcno = shift; + my $line = shift; + my $origin = shift; + + if (eph_dup($line, $eph_pc15_restime)) { + dbg("PCPROT: Ephemeral dup, dropped") if isdbg('chanerr'); + } else { + unless ($self->{isolate}) { + DXChannel::broadcast_nodes($line, $self) if $line =~ /\^H\d+\^?~?$/; # send it to everyone but me + } + } +} # incoming user sub handle_16 @@ -952,7 +970,7 @@ sub handle_18 $self->user->put; $self->sort('S'); } - $self->{handle_xml}++ if $main::do_xml && $_[1] =~ /\bxml\b/; + $self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml\b/; } else { $self->version(50.0); $self->version($_[2] / 100) if $_[2] && $_[2] =~ /^\d+$/;