From 4d1c2206f8c3abeb3524a722b306313716fc0973 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Sat, 11 Dec 2021 20:31:59 +0000 Subject: [PATCH] more wip --- perl/DXCommandmode.pm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index 6023320d..f36f266f 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -131,11 +131,16 @@ sub start $self->{registered} = $user->registered; } + # establish slug queue, if required + $self->{sluggedpcs} = []; + $self->{isslugged} = $DXProt::pc92_slug_changes + $DXProt::last_pc92_slug + 5 if $DXProt::pc92_slug_changes; + $self->{isslugged} = 0 if $self->{priv} > 0 || $user->registered || $user->homenode eq $main::mycall; + # send the relevant MOTD $self->send_motd; # sort out privilege reduction - $self->{priv} = 0 if $line =~ /^(ax|te)/ && !$self->conn->{usedpasswd}; + $self->{priv} = 0 unless $self->{hostname} eq '127.0.0.1' || $self->{hostname} eq '::1' || $self->conn->{usedpasswd}; # get the filters my $nossid = $call; @@ -558,7 +563,7 @@ sub process my $dxchan; foreach $dxchan (@dxchan) { - next if $dxchan->sort ne 'U'; + next if $dxchan->is_user; # send a outstanding message prompt if required if ($t >= $dxchan->lastmsgpoll + $msgpolltime) { @@ -571,6 +576,18 @@ sub process $dxchan->prompt() if $dxchan->{state} =~ /^prompt/o; $dxchan->t($t); } + + if ($dxchan->{isslugged} && $main::systime > $dxchan->{isslugged}) { + foreach my $ref (@{$dxchan->{sluggedpcs}}) { + if ($ref->[0] == 61) { + Spot::add(@{$ref->[2]}); + DXProt::send_dx_spot($dxchan, $ref->[1], @{$ref->[2]}); + } + } + + $dxchan->{isslugged} = 0; + $dxchan->{sluggedpcs} = []; + } } while (my ($k, $v) = each %nothereslug) { -- 2.34.1