change build number calculation to be more accurate
[spider.git] / perl / DXMsg.pm
index f3c2172cfba7c45c70e7fa5d3c12353853dd2b92..b4470f66c8f3866485dfb9ebfd816ac16a0294ff 100644 (file)
@@ -27,6 +27,13 @@ use IO::File;
 use Fcntl;
 
 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;
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
 use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean
                        @badmsg @swop $swopfn $badmsgfn $forwardfn @forward $timeout $waittime
                    $queueinterval $lastq $importfn $minchunk $maxchunk $bulltopriv);
@@ -686,7 +693,15 @@ sub start_msg
        $busy{$self->{tonode}} = $self;
        $work{$self->{tonode}} = $self;
        $self->{lastt} = $main::systime;
-       $dxchan->send(DXProt::pc28($self->{tonode}, $self->{fromnode}, $self->{to}, $self->{from}, $self->{t}, $self->{private}, $self->{subject}, $self->{origin}, $self->{rrreq}));
+       my ($fromnode, $origin);
+       if ($dxchan->is_arcluster) {
+               $fromnode = $self->{origin};
+               $origin = $self->{fromnode};
+       } else {
+               $fromnode = $self->{fromnode};
+               $origin = $self->{origin};
+       }
+       $dxchan->send(DXProt::pc28($self->{tonode}, $fromnode, $self->{to}, $self->{from}, $self->{t}, $self->{private}, $self->{subject}, $origin, $self->{rrreq}));
 }
 
 # get the ref of a busy node