Opened 4 years ago

Last modified 5 months ago

#21910 assigned enhancement

Refactor connection_edge_process_relay_cell()

Reported by: dgoulet Owned by: neel
Priority: Low Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: refactor, easy, technical-debt big-function
Cc: neel Actual Points:
Parent ID: Points: 4
Reviewer: Sponsor:


Ticket #16706 is one of the possible many issues we had and will have with this function.

It is quite big with many many return callsite and it is confusing on how it behaves. For instance, if -reason is returned, the caller should teardown the circuit and log warn but yet this functions already does many LOG_PROTOCOL_WARN in that case.

One thing we could do is maybe return a different error code (or set an error code) depending on what's happening (should close circ, cell dropped, error). For instance, currently, returning 0 can either mean that a cell was dropped or successfully relayed.

Auditing every callsite of this function would be important to understand how it is actually used so we can properly improve it and make it less error prone with dubious logging (or improved logging).

Child Tickets

Change History (3)

comment:1 Changed 3 years ago by nickm

Keywords: technical-debt big-function added

comment:2 Changed 3 years ago by nickm

Points: 14

comment:3 Changed 5 months ago by neel

Cc: neel added
Owner: set to neel
Status: newassigned
Note: See TracTickets for help on using tickets.