Make sure that a privilege is always defined even if it is 0
[spider.git] / cmd / shutdown.pl
index 43b6fb7531a24887dea609cb7f39a7fc095e9dfa..1b3d8bb2432ad4f423e11c8909e57433d4059bcd 100644 (file)
@@ -4,7 +4,16 @@
 # $Id$
 #
 my $self = shift;
-if ($self->priv >= 5) {
-  &main::cease();
+my $call = $self->call;
+my $ref;
+return (1, $self->msg('e5')) unless $self->priv >= 5;
+foreach $ref (DXChannel::get_all()) {
+       $ref->send_now("D", DXProt::pc39($main::mycall, "Shutdown by $call")) if $ref->is_node  && $ref != $DXProt::me; 
+       $ref->send_now("D", $self->msg('shutting')) if $ref->is_user;
 }
-return (0);
+    
+# give some time for the buffers to empty and then shutdown (see cluster.pl)
+$main::decease = 250;
+       
+
+return (1, $self->msg('shutting'));