X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fkill.pl;h=d3614c3632f4dd5e4e1ca40623ba23b8db54f5dc;hb=3643ef870e040d437448632209039477eac4e52c;hp=b410bc14c63c5a016233ed2ffebaf5633ba30f99;hpb=57b5e464bc44ae8eee23ab94c1f499f527595dc9;p=spider.git diff --git a/cmd/kill.pl b/cmd/kill.pl index b410bc14..d3614c36 100644 --- a/cmd/kill.pl +++ b/cmd/kill.pl @@ -12,6 +12,14 @@ my $msgno; my @out; my @body; my $ref; +my $call = $self->call; +my $full; + +if ($f[0] =~ /^f/io) { + return (1, $self->msg('e5')) if $self->priv < 5; + $full = 1; + shift @f; +} # $DB::single = 1; @@ -21,9 +29,15 @@ for $msgno (@f) { push @out, "Msg $msgno not found"; next; } - if ($ref->private && $self->priv < 9 && $ref->to ne $ref->call) { + if ($self->priv < 5 && + (($ref->private && $ref->to ne $self->call && $ref->from ne $self->call) || + ($ref->private == 0 && $ref->from ne $self->call))) { push @out, "Msg $msgno not available"; next; + } + Log('msg', "Message $ref->{msgno} from $ref->{from} to $ref->{to} deleted by $call"); + if ($full) { + DXProt::broadcast_ak1a(DXProt::pc49($self->call, $ref->{subject}), $DXProt::me); } $ref->del_msg; push @out, "Message $msgno deleted";