use DXLog;
use IO::File;
use Fcntl;
-use Carp;
use strict;
use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean
# this is periodic processing
if (!$self || !$line) {
- if ($main::systime > $lastq + $queueinterval) {
+ if ($main::systime >= $lastq + $queueinterval) {
# wander down the work queue stopping any messages that have timed out
for (keys %busy) {
$ref->{stream} = $stream;
$ref->{count} = 0; # no of lines between PC31s
dbg('msg', "new message from $f[4] to $f[3] '$f[8]' stream $stream\n");
+ Log('msg', "Incoming message $f[4] to $f[3] '$f[8]'" );
$work{"$f[2]$stream"} = $ref; # store in work
$busy{$f[2]} = $ref; # set interlock
$self->send(DXProt::pc30($f[2], $f[1], $stream)); # send ack
if ($ref->{subject} eq $m->{subject} && $ref->{t} == $m->{t} && $ref->{from} eq $m->{from} && $ref->{to} eq $m->{to}) {
$ref->stop_msg($self->call);
my $msgno = $m->{msgno};
- dbg('msg', "duplicate message to $msgno\n");
- Log('msg', "duplicate message to $msgno");
+ dbg('msg', "duplicate message from $ref->{from} -> $ref->{to} to $msgno");
+ Log('msg', "duplicate message from $ref->{from} -> $ref->{to} to $msgno");
return;
}
}
my @f;
my $size;
- $file = new IO::File;
- if (!open($file, $fn)) {
- print "Error reading $fn $!\n";
+ $file = new IO::File "$fn";
+ if (!$file) {
+ dbg('err', "Error reading $fn $!");
+ Log('err', "Error reading $fn $!");
return undef;
}
$size = -s $fn;
chomp $line;
$size -= length $line;
if (! $line =~ /^===/o) {
- print "corrupt first line in $fn ($line)\n";
+ dbg('err', "corrupt first line in $fn ($line)");
+ Log('err', "corrupt first line in $fn ($line)");
return undef;
}
$line =~ s/^=== //o;
chomp $line;
$size -= length $line;
if (! $line =~ /^===/o) {
- print "corrupt second line in $fn ($line)\n";
+ dbg('err', "corrupt second line in $fn ($line)");
+ Log('err', "corrupt second line in $fn ($line)");
return undef;
}
$line =~ s/^=== //o;
$file = new IO::File;
if (!open($file, $fn)) {
- print "Error reading $fn $!\n";
+ dbg('err' ,"Error reading $fn $!");
+ Log('err' ,"Error reading $fn $!");
return undef;
}
@out = map {chomp; $_} <$file>;
next if $ref->{'read'}; # if it is read, it is stuck here
$clref = DXCluster->get_exact($ref->{to});
unless ($clref) { # otherwise look for a homenode
- my $uref = DXUser->get($ref->{to});
+ my $uref = DXUser->get_current($ref->{to});
my $hnode = $uref->homenode if $uref;
$clref = DXCluster->get_exact($hnode) if $hnode;
}
my $ref;
# load various control files
- print "load badmsg: ", (load_badmsg() or "Ok"), "\n";
- print "load forward: ", (load_forward() or "Ok"), "\n";
- print "load swop: ", (load_swop() or "Ok"), "\n";
+ dbg('err', "load badmsg: " . (load_badmsg() or "Ok"));
+ dbg('err', "load forward: " . (load_forward() or "Ok"));
+ dbg('err', "load swop: " . (load_swop() or "Ok"));
# read in the directory
opendir($dir, $msgdir) or confess "can't open $msgdir $!";