aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/klippy.py5
-rw-r--r--klippy/webhooks.py15
2 files changed, 11 insertions, 9 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py
index 6a24d4a3..33a96a7a 100644
--- a/klippy/klippy.py
+++ b/klippy/klippy.py
@@ -247,6 +247,8 @@ def main():
opts.add_option("-I", "--input-tty", dest="inputtty",
default='/tmp/printer',
help="input tty name (default is /tmp/printer)")
+ opts.add_option("-a", "--api-server", dest="apiserver",
+ help="api server unix domain socket filename")
opts.add_option("-l", "--logfile", dest="logfile",
help="write log to file instead of stderr")
opts.add_option("-v", action="store_true", dest="verbose",
@@ -259,7 +261,8 @@ def main():
options, args = opts.parse_args()
if len(args) != 1:
opts.error("Incorrect number of arguments")
- start_args = {'config_file': args[0], 'start_reason': 'startup'}
+ start_args = {'config_file': args[0], 'apiserver': options.apiserver,
+ 'start_reason': 'startup'}
debuglevel = logging.INFO
if options.verbose:
diff --git a/klippy/webhooks.py b/klippy/webhooks.py
index fa7f073a..de480d27 100644
--- a/klippy/webhooks.py
+++ b/klippy/webhooks.py
@@ -11,8 +11,6 @@ import errno
import json
import homing
-SERVER_ADDRESS = "/tmp/klippy_uds"
-
# Json decodes strings as unicode types in Python 2.x. This doesn't
# play well with some parts of Klipper (particuarly displays), so we
# need to create an object hook. This solution borrowed from:
@@ -98,15 +96,16 @@ class ServerSocket:
self.reactor = printer.get_reactor()
self.sock = self.fd_handle = None
self.clients = {}
- is_fileinput = (printer.get_start_args().get('debuginput')
- is not None)
- if is_fileinput:
- # Do not enable server in batch mode
+ start_args = printer.get_start_args()
+ server_address = start_args.get('apiserver')
+ is_fileinput = (start_args.get('debuginput') is not None)
+ if not server_address or is_fileinput:
+ # Do not enable server
return
- self._remove_socket_file(SERVER_ADDRESS)
+ self._remove_socket_file(server_address)
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self.sock.setblocking(0)
- self.sock.bind(SERVER_ADDRESS)
+ self.sock.bind(server_address)
self.sock.listen(1)
self.fd_handle = self.reactor.register_fd(
self.sock.fileno(), self._handle_accept)