[tor-bugs] #6177 [Tor Relay]: Refactor rend_service_introduce() (was: Refactor complicated functions)

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Thu Jul 5 21:22:04 UTC 2012


#6177: Refactor rend_service_introduce()
-----------------------+----------------------------------------------------
 Reporter:  andrea     |          Owner:                  
     Type:  task       |         Status:  new             
 Priority:  normal     |      Milestone:  Tor: unspecified
Component:  Tor Relay  |        Version:                  
 Keywords:             |         Parent:                  
   Points:             |   Actualpoints:                  
-----------------------+----------------------------------------------------

Comment(by nickm):

 Changing this back to rend_service_introduce(), since otherwise this
 ticket will be infinite.  Will add a new ticket for refactoring complex
 stuff in general.

 Andrea has started on a branch to simplify this function, in
 user/andrea/tor.git branch bug6177.

 So far, it implements a replaycache_t type, to move the replay cache logic
 out of the function.

 Comments:
    * The functions need documentation
    * By convention, when we have a function like the *_internal()
 functions here, where the function would be static if we didn't want to
 unit test it, we wrap its declarations inside "#ifdef RENDCACHE_PRIVATE",
 and then "#define RENDCACHE_PRIVATE" in rendcache.c and test_rendcache.c
    * Similarly with the replaycache_t structure definition.
    * There's a bunch of internal space inside parenthesis where we
 wouldn't ordinarily put it in the rest of the code.
    * I wonder if replaycache_check() has a better verb or predicate name
 than "check" that we could use.  replaycache_item_seen() maybe?
 replaycache_add_and_test()?
    * If one of the items in the sanity-check fails, we probably want to
 log a message in domain LD_BUG, so that we know that our program sucks and
 we can fix it.

 Otherwise, looks good so far!

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


More information about the tor-bugs mailing list