1. 21 Sep, 2018 1 commit
    • 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
  2. 28 Aug, 2018 1 commit
  3. 19 Aug, 2018 1 commit
  4. 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
  5. 03 Jul, 2018 1 commit
  6. 01 Jul, 2018 1 commit
  7. 28 Jun, 2018 1 commit
  8. 21 Jun, 2018 1 commit
  9. 20 Jun, 2018 2 commits
  10. 15 Jun, 2018 2 commits
  11. 06 Apr, 2018 1 commit
  12. 02 Apr, 2018 1 commit
  13. 13 Mar, 2018 1 commit
  14. 07 Feb, 2018 1 commit
  15. 13 Dec, 2017 1 commit
    • Nick Mathewson's avatar
      Use monotime_coarse for transfer times and padding times · 219c969d
      Nick Mathewson authored
      Using absolute_msec requires a 64-bit division operation every time
      we calculate it, which gets expensive on 32-bit architectures.
      Instead, just use the lazy "monotime_coarse_get()" operation, and
      don't convert to milliseconds until we absolutely must.
      
      In this case, it seemed fine to use a full monotime_coarse_t rather
      than a truncated "stamp" as we did to solve this problem for the
      timerstamps in buf_t and packed_cell_t: There are vastly more cells
      and buffer chunks than there are channels, and using 16 bytes per
      channel in the worst case is not a big deal.
      
      There are still more millisecond operations here than strictly
      necessary; let's see any divisions show up in profiles.
      219c969d
  16. 22 Sep, 2017 1 commit
  17. 12 Sep, 2017 1 commit
  18. 26 Jun, 2017 1 commit
  19. 23 Jun, 2017 1 commit
  20. 10 May, 2017 1 commit
  21. 09 May, 2017 1 commit
  22. 08 May, 2017 6 commits
    • Nick Mathewson's avatar
      Fix some clang-i386 warnings in master. · 4d6c79d1
      Nick Mathewson authored
      4d6c79d1
    • Nick Mathewson's avatar
      whitespace fixes · fb97f76e
      Nick Mathewson authored
      fb97f76e
    • Mike Perry's avatar
      02a5835c
    • Mike Perry's avatar
      Cache netflow-related consensus parameters. · 687a8595
      Mike Perry authored and Nick Mathewson's avatar Nick Mathewson committed
      Checking all of these parameter lists for every single connection every second
      seems like it could be an expensive waste.
      
      Updating globally cached versions when there is a new consensus will still
      allow us to apply consensus parameter updates to all existing connections
      immediately.
      687a8595
    • Mike Perry's avatar
      Bug 17592: Clean up connection timeout logic. · d5a151a0
      Mike Perry authored and Nick Mathewson's avatar Nick Mathewson committed
      This unifies CircuitIdleTimeout and PredictedCircsRelevanceTime into a single
      option, and randomizes it.
      
      It also gives us control over the default value as well as relay-to-relay
      connection lifespan through the consensus.
      
      Conflicts:
      	src/or/circuituse.c
      	src/or/config.c
      	src/or/main.c
      	src/test/testing_common.c
      d5a151a0
    • Mike Perry's avatar
      Netflow record collapsing defense. · b0e92634
      Mike Perry authored and Nick Mathewson's avatar Nick Mathewson committed
      This defense will cause Cisco, Juniper, Fortinet, and other routers operating
      in the default configuration to collapse netflow records that would normally
      be split due to the 15 second flow idle timeout.
      
      Collapsing these records should greatly reduce the utility of default netflow
      data for correlation attacks, since all client-side records should become 30
      minute chunks of total bytes sent/received, rather than creating multiple
      separate records for every webpage load/ssh command interaction/XMPP chat/whatever
      else happens to be inactive for more than 15 seconds.
      
      The defense adds consensus parameters to govern the range of timeout values
      for sending padding packets, as well as for keeping connections open.
      
      The defense only sends padding when connections are otherwise inactive, and it
      does not pad connections used solely for directory traffic at all. By default
      it also doesn't pad inter-relay connections.
      
      Statistics on the total padding in the last 24 hours are exported to the
      extra-info descriptors.
      b0e92634