diff --git a/VERSION b/VERSION index 7a50b68..b216023 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.18 +0.9.21 diff --git a/bridge.sh b/bridge.sh index 0a9c2ca..d236278 100755 --- a/bridge.sh +++ b/bridge.sh @@ -2,7 +2,7 @@ # Bridge-Manager: start | stop | restart | status | log SCRIPT="$(dirname "$0")/kobrax_moonraker_bridge.py" LOGFILE="/tmp/bridge.log" -PRINTER_IP="192.168.178.94" +# PRINTER_IP="192.168.178.94" case "${1:-restart}" in start) diff --git a/kobrax_client.py b/kobrax_client.py index 320ecae..e7080fc 100644 --- a/kobrax_client.py +++ b/kobrax_client.py @@ -154,13 +154,21 @@ class KobraXClient: # -- Connection ---------------------------------------------------------- def _do_connect(self): + if not os.path.exists(CERT_FILE) or not os.path.exists(KEY_FILE): + raise FileNotFoundError( + f"TLS-Zertifikate fehlen: anycubic_slicer.crt + anycubic_slicer.key " + f"müssen neben der kx-bridge Binary liegen ({_SCRIPT_DIR}/). " + f"Lade anycubic-certs.zip vom Gitea-Release herunter und entpacke " + f"die Dateien dorthin." + ) ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE ctx.set_ciphers("DEFAULT:@SECLEVEL=0") ctx.load_cert_chain(CERT_FILE, KEY_FILE) - raw = socket.create_connection((self.host, self.port), timeout=5) + _ai = socket.getaddrinfo(self.host, self.port, socket.AF_INET, socket.SOCK_STREAM) + raw = socket.create_connection(_ai[0][4], timeout=5) self._sock = ctx.wrap_socket(raw) log.info("TLS connected cipher=%s", self._sock.cipher()[0]) @@ -589,7 +597,8 @@ class KobraXClient: # langsamerem WLAN am Drucker dauert das Schieben sonst >30 s und # würde den Connect-Timeout fälschlich auslösen. Read-Timeout danach # generös (Drucker verarbeitet die Datei bevor er antwortet). - sock = socket.create_connection((self.host, 18910), timeout=10) + _ai = socket.getaddrinfo(self.host, 18910, socket.AF_INET, socket.SOCK_STREAM) + sock = socket.create_connection(_ai[0][4], timeout=10) sock.settimeout(None) # blocking während Send sock.sendall(headers + body) sock.settimeout(180)