]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Uptime.pl
* Merge changes from prposed changes
[infobot.git] / src / Modules / Uptime.pl
index 40bdb4009e50e067bbd93bdc6d75e6308146ce6a..5c7431613c3f983eb5647f199a3fdc69abd5ab37 100644 (file)
@@ -5,7 +5,7 @@
 #   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 $bot_version, ended ". localtime(time());
+    return "$uptimenow.$$ running $bot_version, ended ". gmtime(time());
   } else {
     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,9 @@ sub uptimeWriteFile {
   }
 
   close OUT;
-
-  $conn->schedule(&getRandomInt("1800-3600"), \&uptimeWriteFile, "");
-  return;
+  &status('--- Saved uptime records.');
 }
 
 1;
+
+# vim:ts=4:sw=4:expandtab:tw=80