ui,popups: fixed exception getting node address when adding a new rule

When a popup was displayed to the user, if they took more than 120s to
respond, the address of the node was lost.

This is because the daemon has hardcoded a max timeout of 120s. If it
fires, the call to AskRule is closed and the context is lost.

In this situation, save the address of the node at the start of AskRule,
so we can reuse it later.
This commit is contained in:
Gustavo Iñiguez Goia 2024-12-16 20:27:42 +01:00
parent 36f9242e11
commit 99cd9f1d45
Failed to generate hash of commit

View file

@ -751,8 +751,9 @@ class UIService(ui_pb2_grpc.UIServicer, QtWidgets.QGraphicsObject):
# TODO: allow connections originated from ourselves: os.getpid() == request.pid)
self._asking = True
proto, addr = self._get_peer(context.peer())
rule, timeout_triggered = self._prompt_dialog.promptUser(request, self._is_local_request(proto, addr), context.peer())
peer = context.peer()
proto, addr = self._get_peer(peer)
rule, timeout_triggered = self._prompt_dialog.promptUser(request, self._is_local_request(proto, addr), peer)
self._last_ping = datetime.now()
self._asking = False
if rule == None:
@ -777,14 +778,14 @@ class UIService(ui_pb2_grpc.UIServicer, QtWidgets.QGraphicsObject):
{
'action': self.DELETE_RULE,
'name': rule.name,
'addr': context.peer()
'addr': peer
}
)
else:
self._node_actions_trigger.emit(
{
'action': self.ADD_RULE,
'peer': context.peer(),
'peer': peer,
'rule': rule
}
)