From dd577a936451caf0c1bab225a642f684418904d9 Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Mon, 12 Feb 2007 13:29:40 +0000
Subject: [PATCH] Added -n option, to specify the host name used for lookup in
 cfg file.

---
 check_no_server | 43 +++++++++++++++++++++++++------------------
 1 file changed, 25 insertions(+), 18 deletions(-)

diff --git a/check_no_server b/check_no_server
index e496dee..99f2970 100755
--- a/check_no_server
+++ b/check_no_server
@@ -20,30 +20,30 @@ def ok(hostname, msg):
     print "OK - %s: %s" % (hostname, msg)
     sys.exit(0)
 
-def check_no_server(hostname, port, cfg):
+def check_no_server(hostaddr, port, cfg, hostname):
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     s.settimeout(7)
     try:
-        s.connect((hostname, port))
+        s.connect((hostaddr, port))
     except socket.gaierror, err:
-        warning(hostname, err[1])
+        warning(hostaddr, err[1])
     except socket.timeout:
         if cfg.require(hostname):
-            critical(hostname, "timeout connecting to server")
+            critical(hostaddr, "timeout connecting to server")
         else:
-            ok(hostname, "timeout connecting to server")
+            ok(hostaddr, "timeout connecting to server")
     except socket.error, e:
         if e[0] == errno.ECONNREFUSED:
             if cfg.require(hostname):
-                critical(hostname, e[1])
+                critical(hostaddr, e[1])
             else:
-                ok(hostname, e[1])
-        unknown(hostname, e[1])
+                ok(hostaddr, e[1])
+        unknown(hostaddr, e[1])
 
     if cfg.allowed(hostname):
-        ok(hostname, "connection succeeded")
+        ok(hostaddr, "connection succeeded")
     else:
-        critical(hostname, "connection succeeded")
+        critical(hostaddr, "connection succeeded")
 
 class CfgFile(object):
     def __init__(self, fn=None):
@@ -69,33 +69,40 @@ def usage():
 def main():
     import getopt
 
-    host = None
+    hostaddr = None
     port = None
     cfg = None
+    hostname = None
 
-    opts, args = getopt.getopt(sys.argv[1:], "H:p:c:",
-                               ["host=", "port=", "cfg="])
+    opts, args = getopt.getopt(sys.argv[1:], "H:p:c:n:",
+                               ["host=", "port=", "cfg=",
+                                "name="])
     for opt, val in opts:
         if opt in ("-H", "--host"):
-            host = val
+            hostaddr = val
         elif opt in ("-p", "--port"):
             port = int(val)
         elif opt in ("-c", "--cfg"):
             cfg = val
+        elif opt in ("-n", "--name"):
+            hostname = val
 
-    if host is None and port is None and len(args) == 2:
-        host = args[0]
+    if hostaddr is None and port is None and len(args) == 2:
+        hostaddr = args[0]
         port = int(args[1])
 
-    if host is None or port is None:
+    if hostaddr is None or port is None:
         usage()
 
     if cfg is not None:
         cfg_data = CfgFile(cfg)
     else:
         cfg_data = CfgFile()
+
+    if hostname is None:
+        hostname = hostaddr
     
-    check_no_server(host, port, cfg_data)
+    check_no_server(hostaddr, port, cfg_data, hostname)
 
 if __name__ == '__main__':
     main()
-- 
GitLab