]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Uptime.pl
take a few more things literally
[infobot.git] / src / Modules / Uptime.pl
index 1ef9d22cffc6a7c3385efa9c02f3061c8391ee0c..83b2e1b23b956f6d136d7f90f3c4e9e443e91508 100644 (file)
@@ -1,11 +1,11 @@
 #
-# Uptime.pl: Uptime daemon for infobot.
+# Uptime.pl: Uptime daemon.
 #    Author: dms
 #   Version: v0.3 (19991008)
 #   Created: 19990925.
 #
 
-use strict;
+# use strict;  # TODO
 
 my $uptimerecords      = 3;
 
@@ -17,14 +17,14 @@ sub uptimeStr {
   my $uptimenow = &uptimeNow();
 
   if (defined $_[0]) {
-    return "$uptimenow.$$ running $infobot_version, ended ". localtime(time());
+    return "$uptimenow.$$ running $bot_version, ended ". gmtime(time());
   } else {
-    return "$uptimenow running $infobot_version";
+    return "$uptimenow running $bot_version";
   }
 }
 
 sub uptimeGetInfo {
-  my (%uptime,%done,%pid);
+  my (%uptime,%done);
   my ($uptime,$pid);
   my @results;
   my $file = $file{utm};
@@ -49,8 +49,9 @@ sub uptimeGetInfo {
 
   # fixed up bad implementation :)
   # should be no problems, even if uptime or pid is duplicated.
+  ## WARN: run away forks may get through here, have to fix.
   foreach $uptime (sort {$b <=> $a} keys %uptime) {
-    foreach $pid (keys %{$uptime{$uptime}}) {
+    foreach $pid (keys %{ $uptime{$uptime} }) {
        next if (exists $done{$pid});
 
        push(@results,"$uptime.$pid $uptime{$uptime}{$pid}");
@@ -67,6 +68,11 @@ sub uptimeWriteFile {
   my @results = &uptimeGetInfo();
   my $file = $file{utm};
 
+  if ($$ != $bot_pid) {
+    &FIXME('uptime: forked process doing weird things!');
+    exit 0;
+  }
+
   if (!open(OUT,">$file")) {
     &status("error: cannot write to $file.");
     return;
@@ -77,9 +83,11 @@ sub uptimeWriteFile {
   }
 
   close OUT;
+  &status('--- Saved uptime records.');
+
+  return unless defined $conn;
 
-  $conn->schedule(&getRandomInt("1800-3600"), \&uptimeWriteFile, "");
-  return;
+  $conn->schedule(&getRandomInt('1800-3600'), \&uptimeWriteFile, '');
 }
 
 1;