From 61fb10c8cf2fd432b1f154d8c5b1aaa2c5b4c7a1 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Fri, 27 Feb 2015 13:59:23 +0100 Subject: vici: Support non-Unix sockets for vici connections using Python --- src/libcharon/plugins/vici/python/vici/protocol.py | 8 +++----- src/libcharon/plugins/vici/python/vici/session.py | 8 ++++++-- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/libcharon/plugins/vici/python') diff --git a/src/libcharon/plugins/vici/python/vici/protocol.py b/src/libcharon/plugins/vici/python/vici/protocol.py index fe4e5d7b5..60b94ede9 100644 --- a/src/libcharon/plugins/vici/python/vici/protocol.py +++ b/src/libcharon/plugins/vici/python/vici/protocol.py @@ -11,10 +11,8 @@ class Transport(object): HEADER_LENGTH = 4 MAX_SEGMENT = 512 * 1024 - def __init__(self, address="/var/run/charon.vici"): - self.address = address - self.socket = socket.socket(socket.AF_UNIX) - self.socket.connect(address) + def __init__(self, sock): + self.socket = sock def send(self, packet): self.socket.sendall(struct.pack("!I", len(packet)) + packet) @@ -191,4 +189,4 @@ class FiniteStream(io.BytesIO): return len(self.getvalue()) def has_more(self): - return self.tell() < len(self) \ No newline at end of file + return self.tell() < len(self) diff --git a/src/libcharon/plugins/vici/python/vici/session.py b/src/libcharon/plugins/vici/python/vici/session.py index dd0249318..cffac6a8d 100644 --- a/src/libcharon/plugins/vici/python/vici/session.py +++ b/src/libcharon/plugins/vici/python/vici/session.py @@ -1,4 +1,5 @@ import collections +import socket from .exception import SessionException from .protocol import Transport, Packet, Message @@ -11,8 +12,11 @@ CommandResult = collections.namedtuple( class Session(object): - def __init__(self, address="/var/run/charon.vici"): - self.handler = SessionHandler(Transport(address)) + def __init__(self, sock=None): + if sock is None: + sock = socket.socket(socket.AF_UNIX) + sock.connect("/var/run/charon.vici") + self.handler = SessionHandler(Transport(sock)) def version(self): """Retrieve daemon and system specific version information. -- cgit v1.2.3