Skip to content

Commit

Permalink
Fix issue with RetryRequestCache
Browse files Browse the repository at this point in the history
  • Loading branch information
egbertbouman authored and devos50 committed Oct 26, 2020
1 parent dbcfb2d commit e6a2288
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ class RelayBalanceResponsePayload(BalanceResponsePayload):
@vp_compile
class BalanceRequestPayload(VariablePayload):
msg_id = 33
format_list = ['I']
names = ['circuit_id']
format_list = ['I', 'H']
names = ['circuit_id', 'identifier']


@vp_compile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@ def should_join_circuit(self, create_payload, previous_node_address):
shared_secret, _, _ = self.crypto.generate_diffie_shared_secret(create_payload.key)
self.relay_session_keys[circuit_id] = self.crypto.generate_session_keys(shared_secret)

self.send_cell(Peer(create_payload.node_public_key, previous_node_address), BalanceRequestPayload(circuit_id))
self.send_cell(Peer(create_payload.node_public_key, previous_node_address),
BalanceRequestPayload(circuit_id, create_payload.identifier))

self.directions.pop(circuit_id, None)
self.relay_session_keys.pop(circuit_id, None)
Expand All @@ -235,11 +236,11 @@ def should_join_circuit(self, create_payload, previous_node_address):

@unpack_cell(BalanceRequestPayload)
def on_balance_request_cell(self, source_address, payload, _):
if self.request_cache.has("create", payload.circuit_id):
request = self.request_cache.get("create", payload.circuit_id)
if self.request_cache.has("create", payload.identifier):
request = self.request_cache.get("create", payload.identifier)
forwarding_relay = RelayRoute(request.from_circuit_id, request.peer)
self.send_cell(forwarding_relay.peer, RelayBalanceRequestPayload(forwarding_relay.circuit_id))
elif self.request_cache.has("retry", payload.circuit_id):
elif self.request_cache.has("retry", payload.identifier):
self.on_balance_request(payload)
else:
self.logger.warning("Circuit creation cache for id %s not found!", payload.circuit_id)
Expand Down

0 comments on commit e6a2288

Please sign in to comment.