1
0

Merge pull request #7566 from SomberNight/202111_rpcsock_unix_default

daemon: change `rpcsock` default to "unix" where available
This commit is contained in:
ghost43
2022-02-16 14:50:29 +00:00
committed by GitHub

View File

@@ -33,6 +33,7 @@ from typing import Dict, Optional, Tuple, Iterable, Callable, Union, Sequence, M
from base64 import b64decode, b64encode from base64 import b64decode, b64encode
from collections import defaultdict from collections import defaultdict
import json import json
import socket
import aiohttp import aiohttp
from aiohttp import web, client_exceptions from aiohttp import web, client_exceptions
@@ -64,7 +65,12 @@ class DaemonNotRunning(Exception):
def get_rpcsock_defaultpath(config: SimpleConfig): def get_rpcsock_defaultpath(config: SimpleConfig):
return os.path.join(config.path, 'daemon_rpc_socket') return os.path.join(config.path, 'daemon_rpc_socket')
def get_rpcsock_default_type(osname): def get_rpcsock_default_type():
# Use unix domain sockets when available,
# with the extra paranoia that in case windows "implements" them,
# we want to test it before making it the default there.
if hasattr(socket, 'AF_UNIX') and sys.platform != 'win32':
return 'unix'
return 'tcp' return 'tcp'
def get_lockfile(config: SimpleConfig): def get_lockfile(config: SimpleConfig):
@@ -245,7 +251,7 @@ class CommandsServer(AuthenticatedServer):
self.fd = fd self.fd = fd
self.config = daemon.config self.config = daemon.config
sockettype = self.config.get('rpcsock', 'auto') sockettype = self.config.get('rpcsock', 'auto')
self.socktype = sockettype if sockettype != 'auto' else get_rpcsock_default_type(os.name) self.socktype = sockettype if sockettype != 'auto' else get_rpcsock_default_type()
self.sockpath = self.config.get('rpcsockpath', get_rpcsock_defaultpath(self.config)) self.sockpath = self.config.get('rpcsockpath', get_rpcsock_defaultpath(self.config))
self.host = self.config.get('rpchost', '127.0.0.1') self.host = self.config.get('rpchost', '127.0.0.1')
self.port = self.config.get('rpcport', 0) self.port = self.config.get('rpcport', 0)