diff --git a/hbd b/hbd
index 26d6c37..82edd7d 100755
--- a/hbd
+++ b/hbd
@@ -22,7 +22,6 @@ import urllib.request, urllib.parse, urllib.error
import urllib.parse
import http.client
import threading
-import queue
from hashlib import md5
import json
import zlib
@@ -296,7 +295,7 @@ answer
(output, err) = p.communicate(nsup.encode())
if output.decode().find('status: NOERROR') >= 0:
return None
- return output.decode()
+ return output.decode()+err.decode()
#
@@ -338,7 +337,7 @@ def initlog(logfile):
try:
return open(logfile, "w")
except Exception as e:
- print("cannot open loffile %s, using STDERR" % logfile)
+ print("cannot open loffile %s, using STDERR: %s" % (logfile, e))
return sys.stderr
@@ -423,10 +422,7 @@ def readsock(sock):
if DEBUG > 3: sys.stderr.write("msg is %s" % str(msg))
if not msg: # Old hbc client
if verbose: print(("old hbc:", data))
- oldclient = True
msg = oldmtodict(data)
- else:
- oldclient = False
if DEBUG > 2: print(("readsock = %s, %s" % (msg,addrp)))
addr = addrp[0:2]
@@ -569,7 +565,7 @@ def updatecode(ucode, uname):
#
class HttpServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
allow_reuse_address = True
- def threaded():
+ def threaded(self):
pass
#
#
@@ -582,7 +578,7 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
def handle(self):
- return http.server.BaseHTTPRequestHandler.handle(self)
+# return http.server.BaseHTTPRequestHandler.handle(self)
try:
return http.server.BaseHTTPRequestHandler.handle(self)
except Exception as e:
@@ -595,7 +591,7 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
self.setheaders(200)
- def setheaders(self, code, headerdict):
+ def setheaders(self, code, headerdict={}):
self.send_response(code)
self.send_header("Last-Modified", time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(now)))
# self.send_header("Accept-Ranges","bytes")
@@ -1086,7 +1082,6 @@ servthread = threading.Thread(target=serv.serve_forever)
servthread.daemon = True
servthread.start()
-hbdclass.Host.dnsQ = queue.Queue()
dnsT = threading.Thread(target=dnsupdatethread)
dnsT.daemon = True
dnsT.start()
@@ -1115,8 +1110,8 @@ while running:
running = False
closeup()
continue
- except select.error as value:
- if value[0] != 4: # interrupted system call
+ except OSError as value:
+ if value.errno != 4: # interrupted system call
sys.stderr.write("select err %s %s" % (select.error, value))
#raise os.error, value
continue
diff --git a/hbdclass.py b/hbdclass.py
index e7ce70e..af80c1b 100644
--- a/hbdclass.py
+++ b/hbdclass.py
@@ -7,6 +7,7 @@ the websit's heartbeat.py
import time
import json
import copy
+import queue
num = 0
@@ -41,7 +42,6 @@ class Connection:
self.state = Connection.unknown
if host:
- r = "new addr %s" % (addr)
Connection.htab[addr] = self.host.name
if self.host.isDynDns():
log(self.host.name, "dns update %s" % self.addr)
@@ -154,6 +154,7 @@ class Connection:
class Host:
# Table of Hosts
hosts = {}
+ dnsQ = queue.Queue()
def __init__(self, name):
global num
@@ -255,21 +256,21 @@ class Host:
def fixup(self):
pass
- def dispstate(self):
- if self.state in ["down", "overdue"]:
- state = "%s" % self.state
- elif self.state in ["up", "UP"]:
- state = ""
- for x in list(self.connections.keys()):
- try:
- state += " %5.1f" % (self.connections[x].rtts[-1])
- except:
- state += " %5s" % (self.connections[x].rtts[-1])
- elif self.state in ["unknown", "UNKNOWN"]:
- state = ""
- else:
- state = "%s" % self.state
- return state
+ #def dispstate(self):
+ # if self.state in ["down", "overdue"]:
+ # state = "%s" % self.state
+ # elif self.state in ["up", "UP"]:
+ # state = ""
+ # for x in list(self.connections.keys()):
+ # try:
+ # state += " %5.1f" % (self.connections[x].rtts[-1])
+ # except:
+ # state += " %5s" % (self.connections[x].rtts[-1])
+ # elif self.state in ["unknown", "UNKNOWN"]:
+ # state = ""
+ # else:
+ # state = "%s" % self.state
+ # return state
def dispstats(self):
if self.doesack != -1:
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..1dd1b60
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+websockets>=9.1
+mattermostdriver>=7.3.0
diff --git a/wstest.py b/wstest.py
index 4b7743b..88cfdd3 100644
--- a/wstest.py
+++ b/wstest.py
@@ -2,7 +2,7 @@ import asyncio
import websockets
async def hello():
- uri = "ws://localhost:50005/messages"
+ uri = "ws://w02:50005/messages"
async with websockets.connect(uri) as websocket:
name = "Andreas"