annok => '9,Accept Announces?,yesno', # accept his announces?
lang => '0,Language',
hmsgno => '0,Highest Msgno',
- group => '0,Access Group,parray', # used to create a group of users/nodes for some purpose or other
+ group => '0,Chat Group,parray', # used to create a group of users/nodes for some purpose or other
isolate => '9,Isolate network,yesno',
wantbeep => '0,Req Beep,yesno',
wantann => '0,Req Announce,yesno',
pagelth => '0,Current Pagelth',
pingint => '9,Node Ping interval',
nopings => '9,Ping Obs Count',
- wantlogininfo => '9,Login info req,yesno',
+ wantlogininfo => '0,Login Info Req,yesno',
wantgrid => '0,Show DX Grid,yesno',
wantann_talk => '0,Talklike Anns,yesno',
wantpc90 => '1,Req PC90,yesno',
prompt => '0,Required Prompt',
version => '1,Version',
build => '1,Build',
+ believe => '1,Believable nodes,parray',
+ lastping => '1,Last Ping at,ptimelist',
);
#no strict;
my $pkg = shift;
my $call = uc shift;
- my $dxchan = DXChannel->get($call);
+ my $dxchan = DXChannel::get($call);
return $dxchan->user if $dxchan;
my $rref = Route::get($call);
return $rref->user if $rref && exists $rref->{user};
for ($action = R_FIRST; !$dbm->seq($key, $val, $action); $action = R_NEXT) {
if (!is_callsign($key) || $key =~ /^0/) {
- Log('DXCommand', "Export Error1: $key\t$val");
+ my $eval = $val;
+ my $ekey = $key;
+ $eval =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg;
+ $ekey =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg;
+ Log('DXCommand', "Export Error1: $ekey\t$eval");
eval {$dbm->del($key)};
- dbg(carp("Export Error1: $key\t$val\n$@")) if $@;
+ dbg(carp("Export Error1: $ekey\t$eval\n$@")) if $@;
++$err;
next;
}
my $ref = decode($val);
if ($ref) {
my $t = $ref->{lastin} || 0;
- if ($main::systime > $t + $tooold) {
+ if ($ref->{sort} eq 'U' && !$ref->{priv} && $main::systime > $t + $tooold) {
unless ($ref->{lat} && $ref->{long} || $ref->{qth} || $ref->{qra}) {
eval {$dbm->del($key)};
dbg(carp("Export Error2: $key\t$val\n$@")) if $@;
}
# some accessors
+
+# want is default = 1
sub _want
{
my $n = shift;
return exists $self->{$s} ? $self->{$s} : 1;
}
+# wantnot is default = 0
+sub _wantnot
+{
+ my $n = shift;
+ my $self = shift;
+ my $val = shift;
+ my $s = "want$n";
+ $self->{$s} = $val if defined $val;
+ return exists $self->{$s} ? $self->{$s} : 0;
+}
+
sub wantbeep
{
return _want('beep', @_);
return _want('pc16', @_);
}
+sub wantpc90
+{
+ return _wantnot('pc90', @_);
+}
+
sub wantsendpc16
{
return _want('sendpc16', @_);
return _want('dxitu', @_);
}
+sub wantnp
+{
+ return _wantnot('np', @_);
+}
+
sub wantlogininfo
{
my $self = shift;
my $self = shift;
delete $self->{passphrase};
}
+
+sub set_believe
+{
+ my $self = shift;
+ my $call = uc shift;
+ $self->{believe} ||= [];
+ push @{$self->{believe}}, $call unless grep $_ eq $call, @{$self->{believe}};
+}
+
+sub unset_believe
+{
+ my $self = shift;
+ my $call = uc shift;
+ if (exists $self->{believe}) {
+ $self->{believe} = [grep {$_ ne $call} @{$self->{believe}}];
+ delete $self->{believe} unless @{$self->{believe}};
+ }
+}
+
+sub believe
+{
+ my $self = shift;
+ return exists $self->{believe} ? @{$self->{believe}} : ();
+}
+
+sub lastping
+{
+ my $self = shift;
+ my $call = shift;
+ $self->{lastping} ||= {};
+ $self->{lastping} = {} unless ref $self->{lastping};
+ my $b = $self->{lastping};
+ $b->{$call} = shift if @_;
+ return $b->{$call};
+}
1;
__END__