GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • David Goulet's avatar
    relay: Report the entire content of a stats file · c934fced
    David Goulet authored
    It turns out that 9 years ago, we stopped appending data into stats file and
    rather overwrite everytime we have new stats (see commit
    a6a127c8)
    
    The load_stats_file() function was still thinking that we could have the same
    line many times in the file which turns out to be false since 9 years ago.
    However, that did not cause problem until IPv6 connection stats came along
    which introduced a new line in conn-stats: "ipv6-conn-bi-direct ...".
    
    Before, that file contained a single line starting with the tag
    "conn-bi-direct".  That very tag appears also in the IPv6 tag (see above) so
    the load_stats_file() function would consider that the IPv6 line as the last
    tag to be appeneded to the file and fail to report the line above (for IPv4).
    It would actually truncate the IPv6 line and report it (removing the "ipv6-"
    part).
    
    In other words, "conn-bi-direct" was not reported and instead
    "ipv6-conn-bi-direct" was used without the "ipv6-" part.
    
    This commit refactors the entire function so that now it looks for a
    "timestamp tag" to validate and then if everything is fine, returns the entire
    content of the file. The refactor simplifies the function, adds logging in
    case of failures and modernize it in terms of coding standard.
    
    Unit tests are also added that makes sure the loaded content matches the
    entire file if timestamp validation passes.
    
    Fixes #40226Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
    c934fced
ticket40226 314 Bytes