]> git.donarmstrong.com Git - infobot.git/blobdiff - src/IRC/Schedulers.pl
eep, scalar() would be nice
[infobot.git] / src / IRC / Schedulers.pl
index 44b021feb625be3b52b2c6d988217720f7deca9d..08be4a966ed64b57395d8334f68a49169d6f3113 100644 (file)
@@ -686,8 +686,8 @@ sub ircCheck {
     }
 
     # debug. needed for testing
-    &TODO("conn->connected = " . $conn->connected());
-    &TODO("time()-msgtime = " . time() - $msgtime);
+    &TODO("conn->connected = " . scalar($conn->connected()));
+    &TODO("time()-msgtime = " . scalar(time() - $msgtime));
 
     if (!$conn->connected or time() - $msgtime > 3600) {
        # todo: shouldn't we use cache{connect} somewhere?
@@ -765,11 +765,15 @@ sub miscCheck {
        my ($shmid, $size) = ($2,$5);
        next unless ($shmid != $shm and $size == 2000);
        my $z   = &shmRead($shmid);
-       # TODO - add nick to SHM so multiple instances can be running
-       # as the same unix user on the same host?
-       if ($z =~ /^(\d+): /) {
-           my $time    = $1;
+       if ($z =~ /^(\S+):(\d+):(\d+): /) {
+           my $n       = $1;
+           my $pid     = $2;
+           my $time    = $3;
            next if (time() - $time < 60*60);
+           # FIXME remove not-pid shm if parent process dead
+           next if ($pid == $bot_pid);
+           # don't touch other bots, if they're running.
+           next unless ($param{ircNick} =~ /^\Q$n\E$/);
        } else {
 #          &DEBUG("shm: $shmid is not ours or old blootbot => ($z)");
 #          next;