fix set/here and unset/here
authorminima <minima>
Sun, 10 Jun 2001 11:00:49 +0000 (11:00 +0000)
committerminima <minima>
Sun, 10 Jun 2001 11:00:49 +0000 (11:00 +0000)
Changes
cmd/set/here.pl
cmd/unset/here.pl
perl/Route.pm

diff --git a/Changes b/Changes
index 9a0901b5f73910abe98c1d55bd7fb82b61f8dac7..9b102bba06debe228e248b97df659efb3f70c4c3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+10Jun01=======================================================================
+1. fix set/here and unset/here
 09Jun01=======================================================================
 1. more fixes
 2. add set/debug filter so that you can see why your filters aren't working
index 8d5665c94366dd5497cc41245404f349377f1f7a..44fc4d4b99ca234a1fb8bb63c6f37b35894e847c 100644 (file)
@@ -16,23 +16,16 @@ my @out;
 foreach $call (@args) {
        $call = uc $call;
        my $dxchan = DXChannel->get($call);
-       my $ref = Route::User::get($call);
        if ($dxchan) {
                $dxchan->here(1);
                push @out, $self->msg('heres', $call);
+               my $ref = Route::User::get($call);
+               $ref = Route::Node::get($call) unless $ref;
                if ($ref) {
-                       my $s = DXProt::pc24($ref);
-                       DXProt::eph_dup($s);
-                       DXProt::broadcast_all_ak1a($s, $DXProt::me) ;
                        $ref->here(1);
-               } elsif ($ref = Route::Node::get($call)) {
                        my $s = DXProt::pc24($ref);
                        DXProt::eph_dup($s);
                        DXProt::broadcast_all_ak1a($s, $DXProt::me) ;
-                       $ref->here(1);
-               } else {
-                       $ref = Route::Node::get($call);
-                       $ref->here(1) if $ref;
                }
        } else {
                push @out, $self->msg('e3', "Set Here", $call);
index c1c7b0f73ed4e062f9396cfaa60af2ec324b74da..4da517c111cfe252d9fde761d317cdae619026ee 100644 (file)
@@ -16,23 +16,16 @@ my @out;
 foreach $call (@args) {
        $call = uc $call;
        my $dxchan = DXChannel->get($call);
-       my $ref = Route::User::get($call);
        if ($dxchan) {
                $dxchan->here(0);
                push @out, $self->msg('hereu', $call);
+               my $ref = Route::User::get($call);
+               $ref = Route::Node::get($call) unless $ref;
                if ($ref) {
-                       my $s = DXProt::pc24($ref);
-                       DXProt::eph_dup($s);
-                       DXProt::broadcast_all_ak1a($s, $DXProt::me) ;
                        $ref->here(0);
-               } elsif ($ref = Route::Node::get($call)) {
                        my $s = DXProt::pc24($ref);
                        DXProt::eph_dup($s);
                        DXProt::broadcast_all_ak1a($s, $DXProt::me) ;
-                       $ref->here(0);
-               } else {
-                       $ref = Route::Node::get($call);
-                       $ref->here(0) if $ref;
                }
        } else {
                push @out, $self->msg('e3', "Unset Here", $call);
index b4306e04837e93d9275e1c5c98cc4c69150ede48..521068b023cba2c2e1358140f549d667d8b1d0c9 100644 (file)
@@ -112,14 +112,20 @@ sub _dellist
 #
 # flag field constructors/enquirers
 #
+# These can be called in various ways:-
+#
+# Route::here or $ref->here returns 1 or 0 depending on value of the here flag
+# Route::here(1) returns 2 (the bit value of the here flag)
+# $ref->here(1) or $ref->here(0) sets the here flag
+#
 
 sub here
 {
        my $self = shift;
        my $r = shift;
        return $self ? 2 : 0 unless ref $self;
-       return ($self->{flags} & 2) ? 1 : 0 unless $r;
-       $self->{flags} = (($self->{flags} & ~2) | ($r ? 1 : 0));
+       return ($self->{flags} & 2) ? 1 : 0 unless defined $r;
+       $self->{flags} = (($self->{flags} & ~2) | ($r ? 2 : 0));
        return $r ? 1 : 0;
 }
 
@@ -128,7 +134,7 @@ sub conf
        my $self = shift;
        my $r = shift;
        return $self ? 1 : 0 unless ref $self;
-       return ($self->{flags} & 1) ? 1 : 0 unless $r;
+       return ($self->{flags} & 1) ? 1 : 0 unless defined $r;
        $self->{flags} = (($self->{flags} & ~1) | ($r ? 1 : 0));
        return $r ? 1 : 0;
 }