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. 05 Jul, 2018 2 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
  4. 03 Jul, 2018 1 commit
  5. 01 Jul, 2018 2 commits
  6. 28 Jun, 2018 2 commits
  7. 21 Jun, 2018 1 commit
  8. 20 Jun, 2018 2 commits
  9. 15 Jun, 2018 2 commits
  10. 02 Jun, 2018 1 commit
  11. 27 Apr, 2018 1 commit
  12. 26 Apr, 2018 1 commit
    • Mike Perry's avatar
      Bug 25733: Avoid assert failure if all circuits time out. · 35e79021
      Mike Perry authored
      Prior to #23100, we were not counting HS circuit build times in our
      calculation of the timeout. This could lead to a condition where our timeout
      was set too low, based on non HS circuit build times, and then we would
      abandon all HS circuits, storing no valid timeouts in the histogram.
      
      This commit avoids the assert.
      35e79021
  13. 06 Apr, 2018 1 commit
  14. 07 Feb, 2018 1 commit
  15. 07 Dec, 2017 3 commits
  16. 15 Nov, 2017 1 commit
  17. 26 Sep, 2017 1 commit
    • Nick Mathewson's avatar
      Correct two state-file variable types. · 4d11a468
      Nick Mathewson authored
      These should have been int, but we had listed them as unsigned.
      That's an easy mistake to make, since "int" corresponds with either
      INT or UINT in the configuration file.
      
      This bug cannot have actually caused a problem in practice, since we
      check those fields' values on load, and ensure that they are in
      range 0..INT32_MAX.
      4d11a468
  18. 15 Sep, 2017 1 commit
  19. 28 Aug, 2017 1 commit
  20. 16 May, 2017 1 commit
  21. 15 Mar, 2017 1 commit
  22. 18 Jan, 2017 1 commit
  23. 12 Dec, 2016 1 commit
  24. 17 Oct, 2016 1 commit
    • Nick Mathewson's avatar
      Write a bunch of module documentation. · aae034d1
      Nick Mathewson authored
      This commit adds or improves the module-level documenation for:
      
        buffers.c circuitstats.c command.c connection_edge.c control.c
        cpuworker.c crypto_curve25519.c crypto_curve25519.h
        crypto_ed25519.c crypto_format.c dircollate.c dirserv.c dns.c
        dns_structs.h fp_pair.c geoip.c hibernate.c keypin.c ntmain.c
        onion.c onion_fast.c onion_ntor.c onion_tap.c periodic.c
        protover.c protover.h reasons.c rephist.c replaycache.c
        routerlist.c routerparse.c routerset.c statefile.c status.c
        tor_main.c workqueue.c
      
      In particular, I've tried to explain (for each documented module)
      what each module does, what's in it, what the big idea is, why it
      belongs in Tor, and who calls it.  In a few cases, I've added TODO
      notes about refactoring opportunities.
      
      I've also renamed an argument, and fixed a few DOCDOC comments.
      aae034d1
  25. 13 Sep, 2016 3 commits
    • teor's avatar
      Refactor Single Onion code to improve consistency · 365ca3ca
      teor authored and Nick Mathewson's avatar Nick Mathewson committed
      * Check consistency between the two single onion torrc options
      * Use the more relevant option each time we check for single onion mode
      * Clarify log messages
      * Clarify comments
      * Otherwise, no behaviour change
      365ca3ca
    • teor's avatar
      Use CircuitBuildTimeout whenever circuit_build_times_disabled is true · 0285f4f3
      teor authored and Nick Mathewson's avatar Nick Mathewson committed
      Previously, we checked LearnCircuitBuildTimeout directly.
      
      Fixes bug #20073 in commit 5b0b51ca on tor 0.2.4.12-alpha.
      0285f4f3
    • teor (Tim Wilson-Brown)'s avatar
      Implement Prop #260: Single Onion Services · b560f852
      teor (Tim Wilson-Brown) authored and Nick Mathewson's avatar Nick Mathewson committed
      Add experimental OnionServiceSingleHopMode and
      OnionServiceNonAnonymousMode options. When both are set to 1, every
      hidden service on a tor instance becomes a non-anonymous Single Onion
      Service. Single Onions make one-hop (direct) connections to their
      introduction and renzedvous points. One-hop circuits make Single Onion
      servers easily locatable, but clients remain location-anonymous.
      This is compatible with the existing hidden service implementation, and
      works on the current tor network without any changes to older relays or
      clients.
      
      Implements proposal #260, completes ticket #17178. Patch by teor & asn.
      
      squash! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Implement Prop #260: Single Onion Services
      
      Redesign single onion service poisoning.
      
      When in OnionServiceSingleHopMode, each hidden service key is poisoned
      (marked as non-anonymous) on creation by creating a poison file in the
      hidden service directory.
      
      Existing keys are considered non-anonymous if this file exists, and
      anonymous if it does not.
      
      Tor refuses to launch in OnionServiceSingleHopMode if any existing keys
      are anonymous. Similarly, it refuses to launch in anonymous client mode
      if any existing keys are non-anonymous.
      
      Rewrite the unit tests to match and be more comprehensive.
      Adds a bonus unit test for rend_service_load_all_keys().
      b560f852
  26. 28 Jul, 2016 1 commit
  27. 27 Feb, 2016 2 commits
  28. 17 May, 2015 1 commit
  29. 06 Feb, 2015 1 commit
  30. 02 Jan, 2015 1 commit