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',
pingint => '9,Node Ping interval',
nopings => '9,Ping Obs Count',
wantlogininfo => '9,Login info req,yesno',
- wantgrid => '0,DX Grid Info,yesno',
+ wantgrid => '0,Show DX Grid,yesno',
wantann_talk => '0,Talklike Anns,yesno',
wantpc90 => '1,Req PC90,yesno',
- wantnp => '1,Req New Protocol,yesno',
+ wantnp => '1,Req New Proto,yesno',
wantpc16 => '9,Want Users from node,yesno',
wantsendpc16 => '9,Send PC16,yesno',
wantroutepc19 => '9,Route PC19,yesno',
+ wantusstate => '0,Show US State,yesno',
+ wantdxcq => '0,Show CQ Zone,yesno',
+ wantdxitu => '0,Show ITU Zone,yesno',
lastoper => '9,Last for/oper,cldatetime',
nothere => '0,Not Here Text',
registered => '9,Registered?,yesno',
prompt => '0,Required Prompt',
version => '1,Version',
build => '1,Build',
+ believe => '1,Believable nodes,parray',
+ lastping => '1,Last Ping at,ptimelist',
);
#no strict;
if ($@) {
$ufn = "$fn.v2";
+ $v3 = $convert = 0;
+ dbg("the module Storable appears to be missing!!");
+ dbg("trying to continue in compatibility mode (this may fail)");
+ dbg("please install Storable from CPAN as soon as possible");
} else {
import Storable qw(nfreeze thaw);
$ufn = "$fn.v3";
$v3 = 1;
- $convert = ! -e $ufn;
+ $convert++ unless -e $ufn;
}
if ($mode) {
} else {
$dbm = tie (%u, 'DB_File', $ufn, O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn ($!) [rebuild it from user_asc?]";
}
+
+ $lru = LRU->newbase("DXUser", $lrusize);
# do a conversion if required
if ($convert) {
my ($key, $val, $action, $count, $err) = ('','',0,0,0);
my %oldu;
- dbg("Converting the User File to V3 (I suggest you go and have cup of strong tea)");
- my $odbm = tie (%oldu, 'DB_File', "${fn}.v2", O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn ($!) [rebuild it from user_asc?]";
+ dbg("Converting the User File to V3 ");
+ dbg("This will take a while, I suggest you go and have cup of strong tea");
+ my $odbm = tie (%oldu, 'DB_File', "$fn.v2", O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn.v2 ($!) [rebuild it from user_asc?]";
for ($action = R_FIRST; !$odbm->seq($key, $val, $action); $action = R_NEXT) {
my $ref = asc_decode($val);
if ($ref) {
dbg("Conversion completed $count records $err errors");
}
$filename = $ufn;
- $lru = LRU->newbase("DXUser", $lrusize);
}
sub del_file
}
# 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('routepc16', @_);
}
+sub wantusstate
+{
+ return _want('usstate', @_);
+}
+
+sub wantdxcq
+{
+ return _want('dxcq', @_);
+}
+
+sub wantdxitu
+{
+ 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__