vici: Support non-Unix sockets for vici connections using Python

This commit is contained in:
Martin Willi
2015-03-18 13:59:14 +01:00
parent 358793389a
commit 61fb10c8cf
2 changed files with 9 additions and 7 deletions
@@ -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)
return self.tell() < len(self)
@@ -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.