6. make set/isolate and acc/route mutually exclusive (and issue appropriate
[spider.git] / perl / console.pl
index 4d7040cf2374f9c97b58b76dd9484be131afbd9d..0996dc7a8285e9c3564139aed3e3fd6234fb6aad 100755 (executable)
@@ -26,6 +26,7 @@ BEGIN {
 }
 
 use Msg;
+use IntMsg;
 use DXVars;
 use DXDebug;
 use DXUtil;
@@ -103,9 +104,7 @@ sub do_resize
 sub cease
 {
        my $sendz = shift;
-#      if ($conn && $sendz) {
-#              $conn->send_now("Z$call|bye...");
-#      }
+       $conn->disconnect if $conn;
        endwin();
        dbgclose();
        print @_ if @_;
@@ -422,7 +421,7 @@ if ($call eq $mycall) {
        exit(0);
 }
 
-$conn = Msg->connect("$clusteraddr", $clusterport, \&rec_socket);
+$conn = IntMsg->connect("$clusteraddr", $clusterport, \&rec_socket);
 if (! $conn) {
        if (-r "$data/offline") {
                open IN, "$data/offline" or die;
@@ -436,9 +435,14 @@ if (! $conn) {
        exit(0);
 }
 
+$conn->set_error(sub{cease(0)});
+
+
+unless ($DB::VERSION) {
+       $SIG{'INT'} = \&sig_term;
+       $SIG{'TERM'} = \&sig_term;
+}
 
-$SIG{'INT'} = \&sig_term;
-$SIG{'TERM'} = \&sig_term;
 #$SIG{'WINCH'} = \&do_resize;
 $SIG{'HUP'} = \&sig_term;
 
@@ -446,7 +450,7 @@ do_initscr();
 
 $SIG{__DIE__} = \&sig_term;
 
-$conn->send_later("A$call|$connsort");
+$conn->send_later("A$call|$connsort width=$COLS");
 $conn->send_later("I$call|set/page $maxshist");
 $conn->send_later("I$call|set/nobeep");
 
@@ -455,7 +459,7 @@ Msg->set_event_handler(\*STDIN, "read" => \&rec_stdin);
 my $lastmin = 0;
 for (;;) {
        my $t;
-       Msg->event_loop(11);
+       Msg->event_loop(10, 0.01);
        $t = time;
        if ($t > $lasttime) {
                my ($min)= (gmtime($t))[1];