fix some issues with new format
[spider.git] / cmd / show / node.pl
index 46e0b32d9d66e072d6896fce55191a6a052ad34f..063e2e4288942785e29e909b6158723d79caaa10 100644 (file)
@@ -16,6 +16,7 @@
 
 my ($self, $line) = @_;
 return (1, $self->msg('e5')) unless $self->priv >= 1;
+return (1, $self->msg('storable')) unless $DXUser::v3;
 
 my @call = map {uc $_} split /\s+/, $line; 
 my @out;
@@ -26,7 +27,7 @@ if ($call[0] eq 'ALL') {
        shift @call;
        my ($action, $key, $data) = (0,0,0);
        for ($action = DXUser::R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) {
-               if ($data =~ m{sort => '[ACRSX]'}) {
+               if ($data =~ m{\01[ACRSX]\0\0\0\04sort}) {
                    push @call, $key;
                        ++$count;
                }
@@ -39,7 +40,7 @@ my $call;
 foreach $call (@call) {
        my $clref = Route::Node::get($call);
        my $uref = DXUser->get_current($call);
-       my ($sort, $ver);
+       my ($sort, $ver, $build);
        
        my $pcall = sprintf "%-11s", $call;
        push @out, $self->msg('snode1') unless @out > 0;
@@ -56,16 +57,20 @@ foreach $call (@call) {
                push @out, $self->msg('snode3', $call);
                next;
        }
+       $ver = "";
+       $build = "";
        if ($call eq $main::mycall) {
                $sort = "Spider";
                $ver = $main::version;
        } else {
                $ver = $clref->version if $clref && $clref->version;
+               $ver = $uref->version if $ver && $uref->version;
        }
        
        my ($major, $minor, $subs) = unpack("AAA*", $ver) if $ver;
        if ($uref->is_spider) {
-               push @out, $self->msg('snode2', $pcall, $sort, "$ver  ");
+               $build = "build: " . $uref->build if $uref->build;
+               push @out, $self->msg('snode2', $pcall, $sort, "$ver $build");
        } else {
                push @out, $self->msg('snode2', $pcall, $sort, $ver ? "$major\-$minor.$subs" : "      ");
        }