From 80e224e8edcc6dace9bb47163e10fbc3eb88025e Mon Sep 17 00:00:00 2001 From: Franoosh Date: Sat, 10 Jan 2026 13:03:05 +0100 Subject: Add support for zmq certificates --- worker.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'worker.py') diff --git a/worker.py b/worker.py index cd47345..c3dc9d6 100644 --- a/worker.py +++ b/worker.py @@ -27,6 +27,7 @@ from helpers import ( CustomLoggingFormatter, bytes_to_str, TIME_FORMAT_STRING, + auth_service, ) @@ -57,6 +58,7 @@ TMP_DIR = os.path.join(CWD, "tmp") CLIENTS_JSON_FILE = os.path.join(CWD, 'clients.json') # This should come from the config file: VIDEO_DIR = os.path.join(CWD, "videos") +CERTIFICATE_DIR = 'certs' # Other: @@ -177,8 +179,8 @@ class ServerWorker(Thread): ---------- identity : bytes Worker identity - context : zmq.Context, optional - ZMQ context (default is None, which creates a new context) + context : zmq.Context + ZMQ context Methods ------- @@ -189,7 +191,7 @@ class ServerWorker(Thread): run() Main loop of the worker. """ - def __init__(self, identity, context=None) -> None: + def __init__(self, identity, context) -> None: """ Docstring for __init__ @@ -197,11 +199,11 @@ class ServerWorker(Thread): ---------- identity : bytes Worker identity - context : zmq.Context, optional - ZMQ context (default is None, which creates a new context) + context : zmq.Context + ZMQ context """ super().__init__(daemon=True) - self.context = context or zmq.Context.instance() + self.context = context self.socket = self.context.socket(zmq.DEALER) self.id = self.socket.identity = identity self.monitor = MonitorTask(self.socket) @@ -241,7 +243,7 @@ class ServerWorker(Thread): if client_id not in self.video_threads or not self.video_threads[client_id].get(camera_id): q = Queue() logger.debug("Starting new video thread for client %r, camera %r", client_id, camera_id) - video_worker = VideoWorker(client_id, camera_id, filename, q) + video_worker = VideoWorker(client_id, camera_id, filename, q, self.context) video_worker.start() self.video_threads[client_id][camera_id] = video_worker @@ -490,7 +492,7 @@ class VideoWorker(Thread): Stop thread """ - def __init__(self, client_id, camera_id, filename, queue) -> None: + def __init__(self, client_id, camera_id, filename, queue, context) -> None: """ Docstring for __init__ @@ -504,9 +506,11 @@ class VideoWorker(Thread): Filename to write video to queue : Queue Queue to receive video frames + context : zmq.Context + ZMQ context """ super().__init__(daemon=True) - self.context = zmq.Context() + self.context = context self.context.setsockopt(zmq.LINGER, 0) self.client_id = client_id self.camera_id = camera_id @@ -625,7 +629,9 @@ if __name__ == "__main__": signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) - worker = ServerWorker(b"worker-task") + context = zmq.Context() + auth_service(context, CERTIFICATE_DIR) + worker = ServerWorker(b"worker-task", context) worker.start() worker.join() -- cgit v1.2.3