[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #18402 [Core Tor/Tor]: Reduce duplicate code in parse_*_time functions



#18402: Reduce duplicate code in parse_*_time functions
-------------------------------------------------+-------------------------
 Reporter:  icanhasaccount                       |          Owner:
     Type:  enhancement                          |         Status:
                                                 |  needs_revision
 Priority:  Low                                  |      Milestone:  Tor:
                                                 |  0.2.???
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  unspecified
 Severity:  Minor                                |     Resolution:
 Keywords:  TorCoreTeam-postponed-201604,        |  Actual Points:
  nickm-deferred-20160905                        |
Parent ID:                                       |         Points:  1
 Reviewer:  yawning                              |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by icanhasaccount):

 Replying to [comment:10 teor]:
 > Replying to [comment:9 icanhasaccount]:
 > > Hey all - I've had another look at this and its more complicated than
 I first thought.
 > >
 > > Looking at the 3 parse_*_time functions in util.c:
 > >
 > > parse_rfc1123_time: called from parse_http_response, or/directory.c
 > > The result of parse_rfc1123_time isn't actually used anywhere in this
 function - could this be removed?
 >
 > parse_http_response is passed a date parameter, which is set to the
 result of parse_rfc1123_time. connection_dir_client_reached_eof uses it,
 but connection_read_https_proxy_response does not.
 >
 > > parse_http_time: called from directory_handle_command_get,
 /or/directory.c
 > > if_modified_since always appears to be zero, so unless logging the
 failure result of parse_http_time is useful it seems this could be removed
 as well?
 >
 > if_modified_since is only set to zero if tor_timegm fails. Otherwise,
 its value is provided by tor_timegm. And it is used by
 directory_handle_command_get.
 >

 Ah yes - you're correct - parse_rfc1123_time and parse_iso_time_ both
 return the result of tor_timegm,
  but parse_http_time doesn't.

 > > parse_iso_time_: called from rend_parse_v2_service_descriptor,
 or/routerparse.c and entry_guards_parse_state_for_guard_selection,
 or/entrynodes.c , both functions use the result of parse_is_time_ so this
 appears fine.
 >
 > And parse_iso_time_ (trailing underscore) is called by parse_iso_time
 (no trailing underscore), which is called by about 20 functions.
 >
 > > So before revising the diff I thought I'd check as a first step if
 parse_rfc1123_time and parse_http_time could (or should) be removed?
 >
 > No, they need to stay.

 Yup - thank you for taking the time to read through my ramblings and for
 providing a detailed explanation.

 I think its probably best to drop the original diff and close the report
 (the original diff isn't really correct either and no longer applies) -
 reducing the duplicated code would be worthwhile but its a task best left
 to folks more familiar with the tor code.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/18402#comment:11>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs