X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=a3b5e983586ed9a9fdab49eac489323660813646;hb=f91073b99369ea05c42364f9462695be7a67016d;hp=fe65cdb3b204667d1931113c4036f6583fcd56a8;hpb=72f6ef154a3401f9c6da5ef00808afb03c43a87f;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index fe65cdb3..a3b5e983 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -4,7 +4,7 @@ # # Copyright (c) 1998 Dirk Koopman G1TLH # -# $Id$ +# # # # Notes for implementors:- @@ -32,12 +32,6 @@ eval { use strict; -use vars qw($VERSION $BRANCH); -$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); -$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); -$main::build += $VERSION; -$main::branch += $BRANCH; - use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean $residencetime @badmsg @swop $swopfn $badmsgfn $forwardfn @forward $timeout $waittime $email_server $email_prog $email_from @@ -72,30 +66,30 @@ $importfn = "$msgdir/import"; # import directory %valid = ( - fromnode => '5,From Node', - tonode => '5,To Node', - to => '0,To', - from => '0,From', - t => '0,Msg Time,cldatetime', - private => '5,Private,yesno', - subject => '0,Subject', - linesreq => '0,Lines per Gob', - rrreq => '5,Read Confirm,yesno', - origin => '0,Origin', - lines => '5,Data', - stream => '9,Stream No', + 'read' => '5,Times read', count => '5,Gob Linecnt', + delete => '5,Awaiting Delete,yesno', + deletetime => '5,Deletion Time,cldatetime', file => '5,File?,yesno', + from => '0,From', + fromnode => '5,From Node', gotit => '5,Got it Nodes,parray', - lines => '5,Lines,parray', - 'read' => '5,Times read', - size => '0,Size', - msgno => '0,Msgno', keep => '0,Keep this?,yesno', lastt => '5,Last processed,cldatetime', + lines => '5,Data', + lines => '5,Lines,parray', + linesreq => '0,Lines per Gob', + msgno => '0,Msgno', + origin => '0,Origin', + private => '5,Private,yesno', + rrreq => '5,Read Confirm,yesno', + size => '0,Size', + stream => '9,Stream No', + subject => '0,Subject', + t => '0,Msg Time,cldatetime', + to => '0,To', + tonode => '5,To Node', waitt => '5,Wait until,cldatetime', - delete => '5,Awaiting Delete,yesno', - deletetime => '5,Deletion Time,cldatetime', ); # fix up the default sendmail if available @@ -130,7 +124,7 @@ sub alloc $self->{gotit} = []; # $self->{lastt} = $main::systime; $self->{lines} = []; - $self->{private} = 1 if $bulltopriv && DXUser->get_current($self->{to}); + $self->{private} = 1 if $bulltopriv && DXUser::get_current($self->{to}); return $self; } @@ -206,7 +200,7 @@ sub handle_28 $ref->{lastt} = $main::systime; # look to see whether this is a non private message sent to a known callsign - my $uref = DXUser->get_current($ref->{to}); + my $uref = DXUser::get_current($ref->{to}); if (is_callsign($ref->{to}) && !$ref->{private} && $uref && $uref->homenode) { $ref->{private} = 1; dbg("set bull to $ref->{to} to private") if isdbg('msg'); @@ -222,7 +216,7 @@ sub handle_29 my $ref = get_fwq($fromnode, $stream); if ($ref) { - $_[4] =~ s/\%5E/^/g; + $_[4] =~ s/\%5E/~/g; if (@{$ref->{lines}}) { push @{$ref->{lines}}, $_[4]; } else { @@ -482,7 +476,7 @@ sub notify { my $ref = shift; my $to = $ref->{to}; - my $uref = DXUser->get_current($to); + my $uref = DXUser::get_current($to); my $dxchan = DXChannel::get($to); if (((*Net::SMTP && $email_server) || $email_prog) && $uref && $uref->wantemail) { my $email = $uref->email; @@ -792,6 +786,8 @@ sub queue_msg if ($dxchan) { if ($dxchan->is_node) { next if $clref->call eq $main::mycall; # i.e. it lives here + next if $dxchan->is_arcluster; # don't even go there, idiot people send the header in the wrong order and won't/can't fix it + next if $dxchan->isolate; # there is no mechanism for sending messages to isolated nodes. $ref->start_msg($dxchan) if !get_busy($dxchan->call) && $dxchan->state eq 'normal'; } } else { @@ -810,8 +806,10 @@ sub queue_msg next unless $call; next if $call eq $main::mycall; next if ref $ref->{gotit} && grep $_ eq $call, @{$ref->{gotit}}; - next unless $ref->forward_it($call); # check the forwarding file - next if $ref->{tonode}; # ignore it if it already being processed + next unless $ref->forward_it($call); # check the forwarding file + next if $ref->{tonode}; # ignore it if it already being processed + next if $dxchan->is_arcluster; # don't even go there, idiot people send the header in the wrong order and won't/can't fix it + next if $dxchan->isolate; # there is no mechanism for sending messages to isolated nodes. # if we are here we have a node that doesn't have this message if (!get_busy($call) && $dxchan->state eq 'normal') {