6. Implemented PC49 delete/full from outside (kill full on the inside)
[spider.git] / cmd / kill.pl
1 #
2 # kill or delete a message
3 #
4 # Copyright (c) Dirk Koopman G1TLH
5 #
6 # $Id$
7 #
8
9 my ($self, $line) = @_;
10 my @f = split /\s+/, $line;
11 my $msgno;
12 my @out;
13 my @body;
14 my $ref;
15 my $call = $self->call;
16 my $full;
17
18 if ($f[0] =~ /^f/io) {
19         return (1, $self->msg('e5')) if $self->priv < 5;
20         $full = 1;
21         shift @f;
22 }
23
24 # $DB::single = 1;
25
26 for $msgno (@f) {
27   $ref = DXMsg::get($msgno);
28   if (!$ref) {
29     push @out, "Msg $msgno not found";
30         next;
31   }
32   if ($self->priv < 5 && 
33       (($ref->private && $ref->to ne $self->call && $ref->from ne $self->call) ||
34       ($ref->private == 0  && $ref->from ne $self->call))) {
35     push @out, "Msg $msgno not available";
36         next;
37   } 
38   Log('msg', "Message $ref->{msgno} from $ref->{from} to $ref->{to} deleted by $call");
39   if ($full) {
40           DXProt::broadcast_ak1a(DXProt::pc49($self->call, $ref->{subject}), $DXProt::me);
41   }
42   $ref->del_msg;
43   push @out, "Message $msgno deleted";
44 }
45
46 return (1, @out);