[tor-commits] [tor/master] Merge branch 'feature-17178-v7-squashed-v2'

nickm at torproject.org nickm at torproject.org
Tue Sep 13 14:42:00 UTC 2016


commit 9f0cb5af1559d4dab0a49017bdd5f37b0af588f8
Merge: 4b182df f311c9f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Sep 13 10:20:08 2016 -0400

    Merge branch 'feature-17178-v7-squashed-v2'

 changes/bug19677         |   6 +
 changes/feature17178     |  30 +++
 doc/tor.1.txt            |  39 +++-
 src/or/circuitbuild.c    |  32 ++-
 src/or/circuitstats.c    |  30 ++-
 src/or/config.c          | 221 ++++++++++++++----
 src/or/config.h          |   2 +
 src/or/connection_edge.c |  29 ++-
 src/or/control.c         |  22 ++
 src/or/directory.c       |  12 +-
 src/or/directory.h       |   3 +
 src/or/main.c            |  14 +-
 src/or/or.h              |  48 +++-
 src/or/rendclient.c      |  49 +++-
 src/or/rendclient.h      |   3 +
 src/or/rendcommon.c      |  48 ++++
 src/or/rendcommon.h      |   6 +
 src/or/rendservice.c     | 574 ++++++++++++++++++++++++++++++++++++-----------
 src/or/rendservice.h     |  68 +++++-
 src/test/test_hs.c       | 207 +++++++++++++++++
 src/test/test_options.c  | 149 ++++++++++++
 21 files changed, 1371 insertions(+), 221 deletions(-)

diff --cc src/or/rendservice.c
index 8d3a7d7,cce63f2..4f7d7aa
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@@ -3896,12 -4179,50 +4179,51 @@@ rend_service_set_connection_addr_port(e
      return -2;
  }
  
- /* Stub that should be replaced with the #17178 version of the function
-  * when merging. */
+ /* Are HiddenServiceSingleHopMode and HiddenServiceNonAnonymousMode consistent?
+  */
+ static int
+ rend_service_non_anonymous_mode_consistent(const or_options_t *options)
+ {
+   /* !! is used to make these options boolean */
+   return (!! options->HiddenServiceSingleHopMode ==
+           !! options->HiddenServiceNonAnonymousMode);
+ }
+ 
+ /* Do the options allow onion services to make direct (non-anonymous)
+  * connections to introduction or rendezvous points?
+  * Must only be called after options_validate_single_onion() has successfully
+  * checked onion service option consistency.
+  * Returns true if tor is in HiddenServiceSingleHopMode. */
  int
- rend_service_allow_direct_connection(const or_options_t *options)
+ rend_service_allow_non_anonymous_connection(const or_options_t *options)
  {
-   (void)options;
-   return 0;
+   tor_assert(rend_service_non_anonymous_mode_consistent(options));
+   return options->HiddenServiceSingleHopMode ? 1 : 0;
+ }
+ 
+ /* Do the options allow us to reveal the exact startup time of the onion
+  * service?
+  * Single Onion Services prioritise availability over hiding their
+  * startup time, as their IP address is publicly discoverable anyway.
+  * Must only be called after options_validate_single_onion() has successfully
+  * checked onion service option consistency.
+  * Returns true if tor is in non-anonymous hidden service mode. */
+ int
+ rend_service_reveal_startup_time(const or_options_t *options)
+ {
+   tor_assert(rend_service_non_anonymous_mode_consistent(options));
+   return rend_service_non_anonymous_mode_enabled(options);
+ }
+ 
+ /* Is non-anonymous mode enabled using the HiddenServiceNonAnonymousMode
+  * config option?
+  * Must only be called after options_validate_single_onion() has successfully
+  * checked onion service option consistency.
+  */
+ int
+ rend_service_non_anonymous_mode_enabled(const or_options_t *options)
+ {
+   tor_assert(rend_service_non_anonymous_mode_consistent(options));
+   return options->HiddenServiceNonAnonymousMode ? 1 : 0;
  }
 +





More information about the tor-commits mailing list