commit 43c5df2ab5797a357b359e20c7fc1b6319b48026
parent 7e18e2ea3199380d78e75dec0da4e85939ddf170
Author: ThomasV <thomasv@electrum.org>
Date: Wed, 25 Nov 2020 11:47:25 +0100
Setconfig: set rpc_user rpc_password in daemon (fix #6762).
Do not disable auth if password is an empty string.
Diffstat:
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/electrum/commands.py b/electrum/commands.py
@@ -293,6 +293,7 @@ class Commands:
def _setconfig_normalize_value(cls, key, value):
if key not in ('rpcuser', 'rpcpassword'):
value = json_decode(value)
+ # call literal_eval for backward compatibility (see #4225)
try:
value = ast.literal_eval(value)
except:
@@ -303,6 +304,10 @@ class Commands:
async def setconfig(self, key, value):
"""Set a configuration variable. 'value' may be a string or a Python expression."""
value = self._setconfig_normalize_value(key, value)
+ if self.daemon and key == 'rpcuser':
+ self.daemon.commands_server.rpc_user = value
+ if self.daemon and key == 'rpcpassword':
+ self.daemon.commands_server.rpc_password = value
self.config.set_key(key, value)
return True
diff --git a/electrum/daemon.py b/electrum/daemon.py
@@ -120,6 +120,10 @@ def request(config: SimpleConfig, endpoint, args=(), timeout=60):
def get_rpc_credentials(config: SimpleConfig) -> Tuple[str, str]:
rpc_user = config.get('rpcuser', None)
rpc_password = config.get('rpcpassword', None)
+ if rpc_user == '':
+ rpc_user = None
+ if rpc_password == '':
+ rpc_password = None
if rpc_user is None or rpc_password is None:
rpc_user = 'user'
bits = 128
@@ -130,8 +134,6 @@ def get_rpc_credentials(config: SimpleConfig) -> Tuple[str, str]:
rpc_password = to_string(pw_b64, 'ascii')
config.set_key('rpcuser', rpc_user)
config.set_key('rpcpassword', rpc_password, save=True)
- elif rpc_password == '':
- _logger.warning('RPC authentication is disabled.')
return rpc_user, rpc_password