api: extract function to make pylint happy
This commit is contained in:
parent
2df81adab1
commit
66b88cc943
@ -345,6 +345,26 @@ class QubesDaemonProtocol(asyncio.Protocol):
|
|||||||
self.transport.write(str(exc).encode('utf-8') + b'\0')
|
self.transport.write(str(exc).encode('utf-8') + b'\0')
|
||||||
|
|
||||||
|
|
||||||
|
def cleanup_socket(sockpath, force):
|
||||||
|
'''Remove socket if stale, or force=True
|
||||||
|
:param sockpath: path to a socket
|
||||||
|
:param force: should remove even if still used
|
||||||
|
'''
|
||||||
|
if force:
|
||||||
|
os.unlink(sockpath)
|
||||||
|
else:
|
||||||
|
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
try:
|
||||||
|
sock.connect(sockpath)
|
||||||
|
except ConnectionRefusedError:
|
||||||
|
# dead socket, remove it anyway
|
||||||
|
os.unlink(sockpath)
|
||||||
|
else:
|
||||||
|
# woops, someone is listening
|
||||||
|
sock.close()
|
||||||
|
raise FileExistsError(errno.EEXIST,
|
||||||
|
'socket already exists: {!r}'.format(sockpath))
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def create_servers(*args, force=False, loop=None, **kwargs):
|
def create_servers(*args, force=False, loop=None, **kwargs):
|
||||||
'''Create multiple Qubes API servers
|
'''Create multiple Qubes API servers
|
||||||
@ -375,20 +395,7 @@ def create_servers(*args, force=False, loop=None, **kwargs):
|
|||||||
type(handler).__name__)
|
type(handler).__name__)
|
||||||
|
|
||||||
if os.path.exists(sockpath):
|
if os.path.exists(sockpath):
|
||||||
if force:
|
cleanup_socket(sockpath, force)
|
||||||
os.unlink(sockpath)
|
|
||||||
else:
|
|
||||||
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
|
||||||
try:
|
|
||||||
sock.connect(sockpath)
|
|
||||||
except ConnectionRefusedError:
|
|
||||||
# dead socket, remove it anyway
|
|
||||||
os.unlink(sockpath)
|
|
||||||
else:
|
|
||||||
# woops, someone is listening
|
|
||||||
sock.close()
|
|
||||||
raise FileExistsError(errno.EEXIST,
|
|
||||||
'socket already exists: {!r}'.format(sockpath))
|
|
||||||
|
|
||||||
server = yield from loop.create_unix_server(
|
server = yield from loop.create_unix_server(
|
||||||
functools.partial(QubesDaemonProtocol, handler, **kwargs),
|
functools.partial(QubesDaemonProtocol, handler, **kwargs),
|
||||||
|
Loading…
Reference in New Issue
Block a user