1. 06 May, 2020 1 commit
    • Nick Mathewson's avatar
      Use __attribute__((fallthrough)) rather than magic GCC comments. · cc397449
      Nick Mathewson authored
      GCC added an implicit-fallthrough warning a while back, where it
      would complain if you had a nontrivial "case:" block that didn't end
      with break, return, or something like that.  Clang recently added
      the same thing.
      
      GCC, however, would let you annotate a fall-through as intended by
      any of various magic "/* fall through */" comments.  Clang, however,
      only seems to like "__attribute__((fallthrough))".  Fortunately, GCC
      accepts that too.
      
      A previous commit in this branch defined a FALLTHROUGH macro to do
      the right thing if GNUC is defined; here we replace all of our "fall
      through" comments with uses of that macro.
      
      This is an automated commit, made with the following perl one-liner:
      
        #!/usr/bin/perl -i -p
        s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;
      cc397449
  2. 16 Jan, 2019 1 commit
  3. 18 Dec, 2018 1 commit
  4. 10 Dec, 2018 1 commit
    • Taylor Yu's avatar
      Log bootstrap tag names · 1b855af5
      Taylor Yu authored
      Add the bootstrap tag name to the log messages, so people
      troubleshooting connection problems can look up a symbol instead of a
      number.  Closes ticket 28731.
      1b855af5
  5. 19 Nov, 2018 1 commit
  6. 01 Oct, 2018 3 commits
  7. 27 Sep, 2018 2 commits
    • Nick Mathewson's avatar
      Split geoip from geoip-related stats. · f403af22
      Nick Mathewson authored
      This commit just moves the code to two separate files. The geoip
      code still has a few needless dependencies on core/* and features/*.
      f403af22
    • Nick Mathewson's avatar
      Move the predicted ports code out of rephist.c · 241c1505
      Nick Mathewson authored
      It differs from the rest of the rephist code in that it's actually
      necessary for Tor to operate, so it should probably go somewhere
      else.  I'm not sure where yet, so I'll leave it in the same
      directory, but give it its own file.
      241c1505
  8. 25 Sep, 2018 3 commits
  9. 21 Sep, 2018 2 commits
    • Nick Mathewson's avatar
      Split directory.c code into several modules · 194acfb5
      Nick Mathewson authored
      Parts of this C file naturally belong in dircache, dirclient, and
      dircommon: so, move them there.
      194acfb5
    • Nick Mathewson's avatar
      Split main.c into main.c and mainloop.c · c7ce6b98
      Nick Mathewson authored
      The main.c code is responsible for initialization and shutdown;
      the mainloop.c code is responsible for running the main loop of Tor.
      
      Splitting the "generic event loop" part of mainloop.c from the
      event-loop-specific part is not done as part of this patch.
      c7ce6b98
  10. 20 Sep, 2018 1 commit
    • Nick Mathewson's avatar
      Split most of dirserv.c into several new modules · b54a5e70
      Nick Mathewson authored
      In dirauth:
        * bwauth.c reads and uses bandwidth files
        * guardfraction.c reads and uses the guardfraction file
        * reachability.c tests relay reachability
        * recommend_pkg.c handles the recommended-packages lines.
        * recv_descs.c handles fingerprint files and processing incoming
          routerinfos that relays upload to us
        * voteflag.c computes flag thresholds and sets those thresholds on
          routerstatuses when computing votes
      
      In control:
        * fmt_serverstatus.c generates the ancient "v1 server status"
          format that controllers expect.
      
      In nodelist:
        * routerstatus_fmt.c formats routerstatus entries for a consensus,
          a vote, or for the controller.
      b54a5e70
  11. 19 Sep, 2018 1 commit
  12. 13 Sep, 2018 1 commit
  13. 10 Sep, 2018 6 commits
    • Taylor Yu's avatar
      Defer reporting directory bootstrap progress · 61716089
      Taylor Yu authored
      Existing cached directory information can cause misleadingly high
      bootstrap percentages.  To improve user experience, defer reporting of
      directory information progress until at least one connection has
      succeeded to a relay or bridge.
      
      Closes ticket 27169.
      61716089
    • Taylor Yu's avatar
      Track bootstrap phase independently of progress · 687bf3ea
      Taylor Yu authored
      Track bootstrap phase (enumerated by bootstrap_status_t) independently
      from the bootstrap progress (which can represent intermediate
      progress).  This allows control_event_bootstrap_problem() to avoid
      doing a linear search through the bootstrap progress space to find the
      current bootstrap phase.
      687bf3ea
    • Taylor Yu's avatar
      Refactor control_event_bootstrap_core() more · 5733d3f7
      Taylor Yu authored
      Eliminate a few conditional expressions in
      control_event_bootstrap_core() by overwriting the status parameter.
      5733d3f7
    • Taylor Yu's avatar
      Refactor control_event_bootstrap() somewhat · 15c24d66
      Taylor Yu authored
      Move the mostly-invariant part of control_event_boostrap() into a
      helper control_event_bootstrap_core().  The helper doesn't modify any
      state beyond doing logging and control port notifications.
      15c24d66
    • Taylor Yu's avatar
      Deindent much of control_event_bootstrap · e2988e04
      Taylor Yu authored
      e2988e04
    • Taylor Yu's avatar
      Make control_event_bootstrap() return void · eee62e13
      Taylor Yu authored
      Simplify control_event_bootstrap() by making it return void again.  It
      is currently a fairly complicated function, and it's made more
      complicated by returning an int to signal whether it logged at NOTICE
      or INFO.
      
      The callers conditionally log messages at level NOTICE based on this
      return value.  Change the callers to unconditionally log their verbose
      human-readable messages at level INFO to keep NOTICE logs less
      cluttered.
      
      This partially reverts the changes of #14950.
      eee62e13
  14. 07 Sep, 2018 1 commit
  15. 21 Aug, 2018 1 commit
  16. 20 Aug, 2018 1 commit
  17. 08 Aug, 2018 1 commit
  18. 17 Jul, 2018 1 commit
  19. 05 Jul, 2018 3 commits
    • Nick Mathewson's avatar
      Fix every include path changed in the previous commit (automated) · ef486e3c
      Nick Mathewson authored
      I am very glad to have written this script.
      ef486e3c
    • Nick Mathewson's avatar
      Move literally everything out of src/or · 63b4ea22
      Nick Mathewson authored
      This commit won't build yet -- it just puts everything in a slightly
      more logical place.
      
      The reasoning here is that "src/core" will hold the stuff that every (or
      nearly every) tor instance will need in order to do onion routing.
      Other features (including some necessary ones) will live in
      "src/feature".  The "src/app" directory will hold the stuff needed
      to have Tor be an application you can actually run.
      
      This commit DOES NOT refactor the former contents of src/or into a
      logical set of acyclic libraries, or change any code at all.  That
      will have to come in the future.
      
      We will continue to move things around and split them in the future,
      but I hope this lays a reasonable groundwork for doing so.
      63b4ea22
    • Nick Mathewson's avatar
      2d69c32b
  20. 03 Jul, 2018 1 commit
  21. 01 Jul, 2018 2 commits
  22. 28 Jun, 2018 1 commit
  23. 27 Jun, 2018 1 commit
  24. 21 Jun, 2018 1 commit
  25. 20 Jun, 2018 2 commits