X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=update-web-status.py;h=7c297ce24322b16a1472bdd066104c1ed81b9454;hb=5b856a88fc79e962229d1c8ec58d196ed17b00d0;hp=19bda772420f536c0ed77d0df498e93e5f80a64a;hpb=bea2d14d1a0f5f1b18c0dab0b204aa2d9b4b1d78;p=svn42.git
diff --git a/update-web-status.py b/update-web-status.py
index 19bda77..7c297ce 100755
--- a/update-web-status.py
+++ b/update-web-status.py
@@ -31,6 +31,8 @@ class UWSConfig:
self.config_parser.set('web','cgiuri','https://www.realraum.at/cgi/status.cgi?pass=jako16&set=')
self.config_parser.set('web','htmlopen','
Tür ist Offen')
self.config_parser.set('web','htmlclosed','Tür ist Geschlossen')
+ self.config_parser.add_section('debug')
+ self.config_parser.set('debug','enabled',"False")
self.config_mtime=0
if not self.configfile is None:
try:
@@ -42,20 +44,25 @@ class UWSConfig:
self.checkConfigUpdates()
def checkConfigUpdates(self):
+ global logger
if self.configfile is None:
return
logging.debug("Checking Configfile mtime: "+self.configfile)
try:
mtime = os.path.getmtime(self.configfile)
- except IOError:
+ except (IOError,OSError):
return
if self.config_mtime < mtime:
logging.debug("Reading Configfile")
try:
self.config_parser.read(self.configfile)
self.config_mtime=os.path.getmtime(self.configfile)
- except ConfigParser.ParsingError, pe_ex:
+ except (ConfigParser.ParsingError, IOError), pe_ex:
logging.error("Error parsing Configfile: "+str(pe_ex))
+ if self.config_parser.get('debug','enabled') == "True":
+ logger.setLevel(logging.DEBUG)
+ else:
+ logger.setLevel(logging.INFO)
def writeConfigFile(self):
if self.configfile is None:
@@ -184,13 +191,17 @@ if len(sys.argv) > 2:
else:
uwscfg = UWSConfig()
-socket.setdefaulttimeout(10.0) #affects all new Socket Connections (urllib as well)
-sockhandle = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+#socket.setdefaulttimeout(10.0) #affects all new Socket Connections (urllib as well)
RE_STATUS = re.compile(r'Status: (\w+), idle')
RE_REQUEST = re.compile(r'Request: (\w+) (?:Card )?(.+)')
RE_ERROR = re.compile(r'Error: (.+)')
while True:
try:
+ if not os.path.exists(socketfile):
+ logging.debug("Socketfile '%s' not found, waiting 5 secs" % socketfile)
+ time.sleep(5)
+ continue
+ sockhandle = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sockhandle.connect(socketfile)
conn = os.fdopen(sockhandle.fileno())
sockhandle.send("listen\n")
@@ -201,6 +212,9 @@ while True:
uwscfg.checkConfigUpdates()
+ if line == "":
+ raise Exception("EOF on Socket, daemon seems to have quit")
+
m = RE_STATUS.match(line)
if not m is None:
status = m.group(1)
@@ -221,12 +235,9 @@ while True:
except Exception, ex:
logging.error("main: "+str(ex))
try:
- conn.close()
- except:
- pass
- try:
sockhandle.close()
except:
pass
+ conn=None
+ sockhandle=None
time.sleep(5)
-