fixed the syntax error
[spider.git] / perl / DXMsg.pm
index f9ede90c4c167f9445019e243dc346d7bd565cfc..800fb5e74b26ce25ee86c1f24b20d006e4e6b31d 100644 (file)
@@ -110,6 +110,7 @@ sub alloc
        $self->{rrreq} = shift;
        $self->{gotit} = [];
        $self->{lastt} = $main::systime;
+       $self->{lines} = [];
     
        return $self;
 }
@@ -122,7 +123,6 @@ sub workclean
        delete $ref->{tonode};
        delete $ref->{fromnode};
        delete $ref->{stream};
-       delete $ref->{lines};
        delete $ref->{file};
        delete $ref->{count};
        delete $ref->{lastt} if exists $ref->{lastt};
@@ -238,7 +238,6 @@ sub process
                                $work{"$f[2]$f[3]"} = $ref;     # new ref
                                dbg('msg', "incoming subject ack stream $f[3]\n");
                                $busy{$f[2]} = $ref; # interlock
-                               $ref->{lines} = [];
                                push @{$ref->{lines}}, ($ref->read_msg_body);
                                $ref->send_tranche($self);
                                $ref->{lastt} = $main::systime;
@@ -408,12 +407,7 @@ sub store
 {
        my $ref = shift;
        my $lines = shift;
-       
-       # we only proceed if there are actually any lines in the file
-#      if (!$lines || @{$lines} == 0) {
-#              return;
-#      }
-       
+
        if ($ref->{file}) {                     # a file
                dbg('msg', "To be stored in $ref->{to}\n");
                
@@ -464,7 +458,7 @@ sub del_msg
        my $self = shift;
        
        # remove it from the active message list
-       @msg = map { $_ != $self ? $_ : () } @msg;
+       @msg = grep { ref($_) && $_ != $self } @msg;
        
        # belt and braces (one day I will ask someone if this is REALLY necessary)
        delete $self->{gotit};
@@ -482,7 +476,7 @@ sub clean_old
        
        # mark old messages for deletion
        foreach $ref (@msg) {
-               if (!$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
+               if (ref($ref) && !$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
                        $ref->{deleteme} = 1;
                        delete $ref->{gotit};
                        delete $ref->{list};
@@ -492,7 +486,7 @@ sub clean_old
        }
        
        # remove them all from the active message list
-       @msg = map { $_->{deleteme} ? () : $_ } @msg;
+       @msg = grep { ref($_) && !$_->{deleteme} } @msg;
        $last_clean = $main::systime;
 }