]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - .inspircd.inc
Change the way versions are displayed by connect and /version so that its more friend...
[user/henk/code/inspircd.git] / .inspircd.inc
index 6328bbd00def11e032ccfa11e9125eee43a2a515..149eb04a6776f249477022bf1461132c5d75307e 100644 (file)
@@ -47,7 +47,7 @@ if ($arg eq "rehash") {
        if (getstatus() == 1) {
                my $pid = getprocessid();
                system("kill -HUP $pid >/dev/null 2>&1");
-               print "InspIRCd rehashed.\n";
+               print "InspIRCd rehashed (pid: $pid).\n";
                exit();
        } else {
                print "InspIRCd is not running. (Or PID File not found)\n";
@@ -169,11 +169,13 @@ sub stop {
         if (getstatus() == 0) { print "InspIRCd is not running. (Or PID File not found)\n"; return 0; }
         # Get to here, we have something to kill.
         my $pid = getprocessid();
-       print "Stopping InspIRCd...\n";
+       print "Stopping InspIRCd (pid: $pid)...\n";
         system("kill -TERM $pid >/dev/null 2>&1");
+       # Give it a second to exit
+       sleep(1);
        if (getstatus() == 1)
        {
-               print "InspIRCd not dying Quietly -- Forcing Kill\n";
+               print "InspIRCd not dying quietly -- forcing kill\n";
                system("kill -9 $pid >/dev/null 2>&1");
        }
         print "InspIRCd Stopped.\n";
@@ -184,6 +186,13 @@ sub stop {
 # when it is added, it comes around and BITES ME IN THE ASS,
 # because i then have to code support into this script.. Evil.
 
+# Craig got bitten in the ass again --
+# in 1.1 beta the include file is manditory, therefore
+# if we cant find it, default to %conf%/inspircd.pid.
+# Note, this also contains a fix for when the pid file is
+# defined, but defined in a comment (line starts with #)
+# -- Brain
+
 sub getpidfile {
   my ($file) = @_;
   # Before we start, do we have a PID already? (Should never occur)
@@ -208,30 +217,30 @@ sub getpidfile {
   $filesparsed[$filesparsed] = $file;
 
   # Open the File..
-  open INFILE, "< $file" or die "Unable to Open file $file\n";
+  open INFILE, "< $file" or die "Unable to open file $file\n";
   # Grab entire file contents..
   my(@lines) = <INFILE>;
   # Close the file
   close INFILE;
 
-  # Clean up the file, no newlines etc..
+  # remove trailing spaces
   chomp(@lines);
   foreach $i (@lines) {
+    # clean it up
     $i =~ s/[^=]+=\s(.*)/\1/;
-  }
-  my $tmp = join("",@lines);
-
-  # Does this file have a pid?
-  if (($tmp =~ /<pid file=\"(\S+)\">/i) && ($tmp !~ /^#/)) {
-    # Set the PID file and return.
-    $pidfile = $1;
-    return;
+    # Does this file have a pid?
+    if (($i =~ /<pid file=\"(\S+)\">/i) && ($i !~ /^#/))
+    {
+      # Set the PID file and return.
+      $pidfile = $1;
+      return;
+    }
   }
 
-  # If we get here, NO PID FILE! -- Check for includes (Seeing as we will eventually return,
-  # The while (1) is safe.)
-  while (1) {
-    if ($tmp =~ s/\<include file=\"(.+?)\"\>//i)
+  # If we get here, NO PID FILE! -- Check for includes
+  foreach $i (@lines) {
+    $i =~ s/[^=]+=\s(.*)/\1/;
+    if (($i =~ s/\<include file=\"(.+?)\"\>//i) && ($i !~ /^#/))
     {
       # Decend into that file, and check for PIDs.. (that sounds like an STD ;/)
       getpidfile($1);
@@ -240,12 +249,11 @@ sub getpidfile {
         # Yes, Return.
         return;
       }
-    } else {
-      # End of includes / No includes found.
-      $pidfile = $confpath . "inspircd.pid";
-      return;
     }
   }
+
+  # End of includes / No includes found. Using default.
+  $pidfile = $confpath . "inspircd.pid";
 }
 
 sub getstatus {