[tor-bugs] #33414 [Core Tor/Tor]: Split router.c, and disable it (mostly) when building without relay support.

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Apr 6 17:40:14 UTC 2020


#33414: Split router.c, and disable it (mostly) when building without relay
support.
-------------------------------------------------+-------------------------
 Reporter:  nickm                                |          Owner:  nickm
     Type:  defect                               |         Status:
                                                 |  needs_revision
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.4.4.x-final
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  tor-design, network-team-roadmap-    |  Actual Points:  0.5
  2020Q1, 043-deferred                           |
Parent ID:  #31851                               |         Points:  0.5
 Reviewer:  catalyst                             |        Sponsor:
-------------------------------------------------+-------------------------
Changes (by catalyst):

 * status:  needs_review => needs_revision


Comment:

 Mostly looks good!

 Replying to [comment:8 teor]:
 > >  I've answered the comment about the missing lock: that lock is only
 used to protect onion keys, which clients don't have.
 >
 > Thanks!
 >
 > Can we add some comments that document this information?
 +1
 > init_keys_common() and init_keys_client() don't have function comments,
 and init_keys_common() is a really confusing name for a relay-only
 function.
 It looks like `init_keys_client()` has a function comment. (It was
 previously in the header file.) I'm not sure I understand how
 `init_keys_common()` is a relay-only function, though. It looks like
 `init_keys_client()` calls it?

 OK I looked a bit more closely and it's more confusing than I thought. I
 think it really could use better documentation in comments.

 The `init_keys_common()` definition in router.c is not built on clients,
 because router.c is not built on clients. However, clientkey.c includes
 router.h, which has a macro to stub out `init_keys_common()`. Also oddly
 enough, these patches change `init_keys_common()` to remove the `static`
 qualifier, which seems unnecessary to change?

 Or maybe rewrite things so that the naming isn't so confusing?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33414#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list