aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/vici/python
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2015-02-27 13:59:23 +0100
committerMartin Willi <martin@revosec.ch>2015-03-18 13:59:14 +0100
commit61fb10c8cf2fd432b1f154d8c5b1aaa2c5b4c7a1 (patch)
tree16820b5fdcca624a1194e6d6dd04369906390f46 /src/libcharon/plugins/vici/python
parent358793389a98d29887a6bb72f9b48166f6dcb197 (diff)
downloadstrongswan-61fb10c8cf2fd432b1f154d8c5b1aaa2c5b4c7a1.tar.bz2
strongswan-61fb10c8cf2fd432b1f154d8c5b1aaa2c5b4c7a1.tar.xz
vici: Support non-Unix sockets for vici connections using Python
Diffstat (limited to 'src/libcharon/plugins/vici/python')
-rw-r--r--src/libcharon/plugins/vici/python/vici/protocol.py8
-rw-r--r--src/libcharon/plugins/vici/python/vici/session.py8
2 files changed, 9 insertions, 7 deletions
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.