diff --git a/lib/client/client.py b/lib/client/client.py index 71adccf..55ba952 100644 --- a/lib/client/client.py +++ b/lib/client/client.py @@ -5,11 +5,12 @@ import tkinter as tk import threading import time import socket -import os +import os, sys from tkinter import ttk, messagebox from PIL import Image, ImageTk from new_job_window import NewJobWindow from server_proxy import RenderServerProxy +sys.path.append("../") from lib.server.zeroconf_server import ZeroconfServer @@ -53,8 +54,8 @@ class ZordonClient: self.job_cache = [] # Setup zeroconf - self.zeroconf = ZeroconfServer("_zordon._tcp.local.", self.server_proxy.hostname, self.server_proxy.port) - self.zeroconf.start() + self.zeroconf = ZeroconfServer("_zordon._tcp.local.", socket.gethostname(), 8080) + self.zeroconf.start(listen_only=True) # Setup photo preview photo_pad = tk.Frame(self.root, background="gray") diff --git a/lib/server/job_server.py b/lib/server/job_server.py index 178f6f4..6c8a720 100755 --- a/lib/server/job_server.py +++ b/lib/server/job_server.py @@ -16,6 +16,7 @@ import yaml from flask import Flask, request, render_template, send_file, after_this_request, Response, redirect, url_for, abort from werkzeug.utils import secure_filename +from lib.server.zeroconf_server import ZeroconfServer from lib.render_queue import RenderQueue, JobNotFoundError from lib.render_workers.worker_factory import RenderWorkerFactory from lib.render_workers.base_worker import string_to_status, RenderStatus @@ -504,6 +505,9 @@ def start_server(background_thread=False): logging.info(f"Starting Zordon Render Server - Hostname: '{RenderQueue.hostname}'") + zeroconf_server = ZeroconfServer("_zordon._tcp.local.", RenderQueue.hostname, RenderQueue.port) + zeroconf_server.start() + if background_thread: server_thread = threading.Thread( target=lambda: server.run(host='0.0.0.0', port=RenderQueue.port, debug=False, use_reloader=False)) diff --git a/lib/server/zeroconf_server.py b/lib/server/zeroconf_server.py index 2167c14..cd4332f 100644 --- a/lib/server/zeroconf_server.py +++ b/lib/server/zeroconf_server.py @@ -1,13 +1,12 @@ import logging import socket -import time from zeroconf import Zeroconf, ServiceInfo, ServiceBrowser, ServiceStateChange logger = logging.getLogger() -class ZeroconfServer: +class ZeroconfServer(): def __init__(self, service_type, server_name, server_port): self.service_type = service_type self.server_name = server_name @@ -16,9 +15,11 @@ class ZeroconfServer: self.zeroconf = Zeroconf() self.service_info = None self.client_cache = {} + self.properties = {} - def start(self): - self._register_service() + def start(self, listen_only=False): + if not listen_only: + self._register_service() self._browse_services() def stop(self): @@ -33,7 +34,7 @@ class ZeroconfServer: f"{self.server_name}.{self.service_type}", addresses=[socket.inet_aton(self.server_ip)], port=self.server_port, - properties={}, + properties=self.properties, ) self.service_info = info @@ -61,7 +62,7 @@ class ZeroconfServer: # Example usage: if __name__ == "__main__": - server = ZeroconfServer("_zordon._tcp.local.", "Zordon", 5000) + server = ZeroconfServer("_zordon._tcp.local.", "deathstar.local", 8080) server.start() # Run your Flask application or perform other tasks