Browse Source

Setconfig: set rpc_user rpc_password in daemon (fix #6762).

Do not disable auth if password is an empty string.
patch-4
ThomasV 4 years ago
parent
commit
43c5df2ab5
  1. 5
      electrum/commands.py
  2. 6
      electrum/daemon.py

5
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

6
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

Loading…
Cancel
Save