• Nick Mathewson's avatar
    Use native timegm when available. · c1d96358
    Nick Mathewson authored
    Continue having a tor_gmtime_impl() unit test so that we can detect
    any problems in our replacement function; add a new test function to
    make sure that gmtime<->timegm are a round-trip on now-ish times.
    This is a fix for bug #40383, wherein we ran into trouble because
    tor_timegm() does not believe that time_t should include a count of
    leap seconds, but FreeBSD's gmtime believes that it should.  This
    disagreement meant that for a certain amount of time each day,
    instead of calculating the most recent midnight, our voting-schedule
    functions would calculate the second-most-recent midnight, and lead
    to an assertion failure.
    I am calling this a bugfix on when we first started
    calculating our voting schedule in this way.