[tor-commits] [translation/https_everywhere] Update translations for https_everywhere
commit d10e34cf9e4a53a5235224ebf7901bd0a79859dc Author: Translation commit botDate: Sat Apr 28 01:15:29 2018 + Update translations for https_everywhere --- pt_BR/https-everywhere.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pt_BR/https-everywhere.dtd b/pt_BR/https-everywhere.dtd index c0cbf6e75..d83d7880e 100644 --- a/pt_BR/https-everywhere.dtd +++ b/pt_BR/https-everywhere.dtd @@ -2,7 +2,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-launcher-network-settings_completed] Update translations for tor-launcher-network-settings_completed
commit 9940e7513d9f8b152ccdc60bedd609fa244498de Author: Translation commit botDate: Fri Apr 27 22:46:36 2018 + Update translations for tor-launcher-network-settings_completed --- nl/network-settings.dtd | 4 1 file changed, 4 insertions(+) diff --git a/nl/network-settings.dtd b/nl/network-settings.dtd index 45619c377..91effd792 100644 --- a/nl/network-settings.dtd +++ b/nl/network-settings.dtd @@ -41,6 +41,10 @@ + + + + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings
commit 37b650730a6bdb277c0c855d9585c99af97ac80f Author: Translation commit botDate: Fri Apr 27 22:46:30 2018 + Update translations for tor-launcher-network-settings --- nl/network-settings.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nl/network-settings.dtd b/nl/network-settings.dtd index 28074c936..91effd792 100644 --- a/nl/network-settings.dtd +++ b/nl/network-settings.dtd @@ -41,7 +41,7 @@ - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Move stdbool include to torint.h
commit cb0af6157c0acbd0a30c20f8f0a3b9d4d1f402ad Author: Nick MathewsonDate: Fri Apr 27 15:08:27 2018 -0400 Move stdbool include to torint.h It's friday, and this seems like a good idea, and they're egging me on in IRC. --- src/common/torint.h | 2 ++ src/or/or.h | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/torint.h b/src/common/torint.h index 0b8061d24..fc7818fe2 100644 --- a/src/common/torint.h +++ b/src/common/torint.h @@ -40,6 +40,8 @@ #include #endif +#include + #if (SIZEOF_INT8_T != 0) #define HAVE_INT8_T #endif diff --git a/src/or/or.h b/src/or/or.h index 3498e6657..475274340 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -57,7 +57,6 @@ #ifdef HAVE_TIME_H #include #endif -#include #ifdef _WIN32 #include ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-tormessenger] Update translations for support-tormessenger
commit 48c271bcde8f9333c262ab1fc3cc1a079a9028bd Author: Translation commit botDate: Fri Apr 27 17:50:52 2018 + Update translations for support-tormessenger --- pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl.json b/pl.json index bbad42d5c..25c69e101 100644 --- a/pl.json +++ b/pl.json @@ -14,7 +14,7 @@ "messenger-3": { "id": "#messenger-3", "control": "messenger-3", - "title": "Where can I download Tor Messenger?", + "title": "Gdzie mogÄ pobraÄ Tor Messenger?", "description": "While the Tor Messenger remains in beta, the latest downloads can be found on our wiki." } } ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-tormobile] Update translations for support-tormobile
commit a7378f165f52a104721859f90654d066e951dd7c Author: Translation commit botDate: Fri Apr 27 17:51:00 2018 + Update translations for support-tormobile --- pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl.json b/pl.json index d832318fe..430045887 100644 --- a/pl.json +++ b/pl.json @@ -14,7 +14,7 @@ "tormobile-3": { "id": "#tormobile-3", "control": "tormobile-3", - "title": "Can I run Tor on an iOS device?", + "title": "Czy mogÄ uruchomiÄ Tor na urzÄ dzeniu z IOS?", "description": " We recommend an iOS app called Onion Browser, which is open source, uses Tor routing, and is developed by someone who works closely with the Tor Project. However, Apple requires browsers on iOS to use something called Webkit, which prevents Onion Browser from having the same privacy protections as Tor Browser. https://blog.torproject.org/tor-heart-onion-browser-and-more-ios-tor\;>Learn more about Onion Browser." }, "tormobile-4": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-tbb] Update translations for support-tbb
commit 0ece63575b5da6fbdb53823098ea98e240d1e9c1 Author: Translation commit botDate: Fri Apr 27 17:50:37 2018 + Update translations for support-tbb --- pl.json | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pl.json b/pl.json index e4ba34fc5..9014c8aaf 100644 --- a/pl.json +++ b/pl.json @@ -32,7 +32,7 @@ "tbb-6": { "id": "#tbb-6", "control": "tbb-6", - "title": "Can I make Tor Browser my default browser?", + "title": "Czy mogÄ ustawiÄ PrzeglÄ darkÄ Tor jako domyÅlnÄ ?", "description": "Unfortunately, there is no supported way to make Tor Browser your default browser." }, "tbb-7": { @@ -146,13 +146,13 @@ "tbb-24": { "id": "#tbb-24", "control": "tbb-24", - "title": "I'm having a problem with DuckDuckGo.", + "title": "Mam problem z DuckDuckGo.", "description": "Please see the âhttps://duck.co/help\;>DuckDuckGo support portal. If you believe this is a Tor Browser issue, please report it on our âhttps://trac.torproject.org/\;>bug tracker." }, "tbb-25": { "id": "#tbb-25", "control": "tbb-25", - "title": "I'm having a problem with NoScript.", + "title": "Mam problem z NoScript.", "description": "Please see the âhttps://noscript.net/faq\;>NoScript FAQ. If you believe this is a Tor Browser issue, please report it on our âhttps://trac.torproject.org/\;>bug tracker." }, "tbb-26": { @@ -194,7 +194,7 @@ "tbb-32": { "id": "#tbb-32", "control": "tbb-32", - "title": "Can I set Tor Browser as my default browser?", + "title": "Czy mogÄ ustawiÄ PrzeglÄ darkÄ Tor jako domyÅlnÄ ?", "description": "There is currently no supported method for setting Tor Browser as your default browser. The Tor Browser works hard to isolate itself from the rest of your system, and the steps for making it the default browser are unreliable. This means sometimes a website would load in the Tor Browser, and sometimes it would load in another browser, this type of behavior can be dangerous and anonymity-breaking." }, "tbb-33": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-miscellaneous] Update translations for support-miscellaneous
commit 7fd6ca558926e89d53a0005c311a2282bed99a3c Author: Translation commit botDate: Fri Apr 27 17:50:27 2018 + Update translations for support-miscellaneous --- pl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pl.json b/pl.json index c29993d09..ae975bc50 100644 --- a/pl.json +++ b/pl.json @@ -14,7 +14,7 @@ "misc-3": { "id": "#misc-3", "control": "misc-3", - "title": "Who funds Tor?", + "title": "Kto wynalazÅ Tor?", "description": "Tor is funded by a number of different sponsors including US federal agencies, private foundations, and individual donors. Check out a list of all https://www.torproject.org/about/sponsors.html.en\;>our sponsors and a series of https://blog.torproject.org/category/tags/form-990\;>blog posts on our financial reports.We feel that talking openly about our funders and funding model is the best way to maintain trust with our community. We are always seeking more diversity in our funding sources, especially from foundations and individuals." }, "misc-4": { @@ -44,7 +44,7 @@ "misc-8": { "id": "#misc-8", "control": "misc-8", - "title": "Can I use the Tor logo in my product?", + "title": "Czy mogÄ użyÄ logo Tor w moim produkcie?", "description": "You can read all about that on our https://www.torproject.org/docs/trademark-faq.html\;>âTrademark faq page." }, "misc-9": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/release-0.3.3] Stop initialising rust submodules, travis does this for us
commit b116710e313c6debf9bc172e462837782def57bd Author: teorDate: Fri Dec 15 12:55:02 2017 +1100 Stop initialising rust submodules, travis does this for us Fixes #24630. --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 18c5b5bdd..46317ee06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -144,8 +144,6 @@ install: - if [[ "$RUST_OPTIONS" != "" ]]; then rustc --version; fi - if [[ "$RUST_OPTIONS" != "" ]]; then cargo --version; fi ## If we're testing rust builds in offline-mode, then set up our vendored dependencies - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule init ; fi - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule update; fi - if [[ "$TOR_RUST_DEPENDENCIES" == "true" ]]; then export TOR_RUST_DEPENDENCIES=$PWD/src/ext/rust/crates; fi script: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/release-0.3.3] Merge branch 'maint-0.3.3' into release-0.3.3
commit 3a53b0c9a2eda2f5c7ca57675051f6d8bdefe5d0 Merge: 19bed6f93 b116710e3 Author: Nick MathewsonDate: Fri Apr 27 13:26:17 2018 -0400 Merge branch 'maint-0.3.3' into release-0.3.3 .travis.yml | 2 -- 1 file changed, 2 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Merge branch 'maint-0.3.3'
commit 78eb0192dae890c473d1920e23635db6d3624b2f Merge: 346c2eb4e b116710e3 Author: Nick MathewsonDate: Fri Apr 27 13:26:17 2018 -0400 Merge branch 'maint-0.3.3' .travis.yml | 2 -- 1 file changed, 2 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/maint-0.3.3] Stop initialising rust submodules, travis does this for us
commit b116710e313c6debf9bc172e462837782def57bd Author: teorDate: Fri Dec 15 12:55:02 2017 +1100 Stop initialising rust submodules, travis does this for us Fixes #24630. --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 18c5b5bdd..46317ee06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -144,8 +144,6 @@ install: - if [[ "$RUST_OPTIONS" != "" ]]; then rustc --version; fi - if [[ "$RUST_OPTIONS" != "" ]]; then cargo --version; fi ## If we're testing rust builds in offline-mode, then set up our vendored dependencies - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule init ; fi - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule update; fi - if [[ "$TOR_RUST_DEPENDENCIES" == "true" ]]; then export TOR_RUST_DEPENDENCIES=$PWD/src/ext/rust/crates; fi script: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Stop initialising rust submodules, travis does this for us
commit b116710e313c6debf9bc172e462837782def57bd Author: teorDate: Fri Dec 15 12:55:02 2017 +1100 Stop initialising rust submodules, travis does this for us Fixes #24630. --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 18c5b5bdd..46317ee06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -144,8 +144,6 @@ install: - if [[ "$RUST_OPTIONS" != "" ]]; then rustc --version; fi - if [[ "$RUST_OPTIONS" != "" ]]; then cargo --version; fi ## If we're testing rust builds in offline-mode, then set up our vendored dependencies - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule init ; fi - - if [[ "$RUST_OPTIONS" == "--enable-rust" ]]; then git submodule update; fi - if [[ "$TOR_RUST_DEPENDENCIES" == "true" ]]; then export TOR_RUST_DEPENDENCIES=$PWD/src/ext/rust/crates; fi script: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Merge branch 'bug25843_v2_squashed'
commit 346c2eb4e60299f69327b5e63e1e25aaf678f964 Merge: 8b58e1e32 d00ed406e Author: Nick MathewsonDate: Fri Apr 27 12:45:07 2018 -0400 Merge branch 'bug25843_v2_squashed' changes/bug25843 | 3 +++ doc/tor.1.txt | 7 +++ src/or/config.c| 6 ++ src/or/entrynodes.c| 16 ++-- src/or/or.h| 2 ++ src/test/test_entrynodes.c | 19 +++ 6 files changed, 47 insertions(+), 6 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Introduce torrc option NumPrimaryGuards
commit d00ed406e08942d6539281eb28e875939ee214e5 Author: George KadianakisDate: Wed Apr 25 15:10:24 2018 +0300 Introduce torrc option NumPrimaryGuards --- changes/bug25843 | 3 +++ doc/tor.1.txt | 7 +++ src/or/config.c| 6 ++ src/or/entrynodes.c| 16 ++-- src/or/or.h| 2 ++ src/test/test_entrynodes.c | 19 +++ 6 files changed, 47 insertions(+), 6 deletions(-) diff --git a/changes/bug25843 b/changes/bug25843 new file mode 100644 index 0..ddbbbef78 --- /dev/null +++ b/changes/bug25843 @@ -0,0 +1,3 @@ + o Minor feature (entry guards): +- Introduce torrc option NumPrimaryGuards for controlling the number of + primary guards. Closes ticket 25843. \ No newline at end of file diff --git a/doc/tor.1.txt b/doc/tor.1.txt index 95620a334..ce9967d8a 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -1344,6 +1344,13 @@ The following options are useful only for clients (that is, if number from the guard-n-primary-guards-to-use consensus parameter, and default to 1 if the consensus parameter isn't set. (Default: 0) +[[NumPrimaryGuards]] **NumPrimaryGuards** __NUM__:: +If UseEntryGuards is set to 1, we will try to pick NUM routers for our +primary guard list, which is the set of routers we strongly prefer when +connecting to the Tor network. If NUM is 0, we try to learn the number from +the guard-n-primary-guards consensus parameter, and default to 3 if the +consensus parameter isn't set. (Default: 0) + [[NumDirectoryGuards]] **NumDirectoryGuards** __NUM__:: If UseEntryGuards is set to 1, we try to make sure we have at least NUM routers to use as directory guards. If this option is set to 0, use the diff --git a/src/or/config.c b/src/or/config.c index 9c0b321b5..04e10e956 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -457,6 +457,7 @@ static config_var_t option_vars_[] = { V(NumCPUs, UINT, "0"), V(NumDirectoryGuards, UINT, "0"), V(NumEntryGuards, UINT, "0"), + V(NumPrimaryGuards,UINT, "0"), V(OfflineMasterKey,BOOL, "0"), OBSOLETE("ORListenAddress"), VPORT(ORPort), @@ -3763,6 +3764,11 @@ options_validate(or_options_t *old_options, or_options_t *options, "http://freehaven.net/anonbib/#hs-attack06 for details."); } + if (options->NumPrimaryGuards && options->NumEntryGuards && + options->NumEntryGuards > options->NumPrimaryGuards) { +REJECT("NumEntryGuards must not be greater than NumPrimaryGuards."); + } + if (options->EntryNodes && routerset_is_list(options->EntryNodes) && (routerset_len(options->EntryNodes) == 1) && diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index 88d1b94de..061aa6f58 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -432,14 +432,15 @@ get_guard_confirmed_min_lifetime(void) STATIC int get_n_primary_guards(void) { - const int n = get_options()->NumEntryGuards; - const int n_dir = get_options()->NumDirectoryGuards; - if (n > 5) { -return MAX(n_dir, n + n / 2); - } else if (n >= 1) { -return MAX(n_dir, n * 2); + /* If the user has explicitly configured the number of primary guards, do + * what the user wishes to do */ + const int configured_primaries = get_options()->NumPrimaryGuards; + if (configured_primaries) { +return configured_primaries; } + /* otherwise check for consensus parameter and if that's not set either, just + * use the default value. */ return networkstatus_get_param(NULL, "guard-n-primary-guards", DFLT_N_PRIMARY_GUARDS, 1, INT32_MAX); @@ -454,6 +455,9 @@ get_n_primary_guards_to_use(guard_usage_t usage) int configured; const char *param_name; int param_default; + + /* If the user has explicitly configured the amount of guards, use + that. Otherwise, fall back to the default value. */ if (usage == GUARD_USAGE_DIRGUARD) { configured = get_options()->NumDirectoryGuards; param_name = "guard-n-primary-dir-guards-to-use"; diff --git a/src/or/or.h b/src/or/or.h index c5a039e93..475274340 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -4148,6 +4148,8 @@ typedef struct { int NumDirectoryGuards; /**< How many dir guards do we try to establish? * If 0, use value from NumEntryGuards. */ + int NumPrimaryGuards; /**< How many primary guards do we want? */ + int RephistTrackTime; /**< How many seconds do we keep rephist info? */ /** Should we always fetch our dir info on the mirror schedule (which * means directly from the authorities) no matter our other config? */ diff --git a/src/test/test_entrynodes.c b/src/test/test_entrynodes.c index 92a860360..f55e9f017 100644 --- a/src/test/test_entrynodes.c +++ b/src/test/test_entrynodes.c @@ -2679,6 +2679,23 @@
[tor-commits] [tor/master] hs: Rescan the main loop event list if the service map changes
commit f7633c1fcaefe72bf97c001bab9062132c919996 Author: David GouletDate: Fri Apr 27 11:14:12 2018 -0400 hs: Rescan the main loop event list if the service map changes Because ADD_ONION/DEL_ONION can modify the global service map (both for v2 and v3), we need to rescan the event list so we either enable or disable the HS service main loop event. Fixees #25939 Signed-off-by: David Goulet --- src/or/hs_service.c| 28 src/or/hs_service.h| 1 + src/or/rendservice.c | 11 +++ src/test/test_periodic_event.c | 12 +--- 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/or/hs_service.c b/src/or/hs_service.c index f6c7e3cd8..7af14373d 100644 --- a/src/or/hs_service.c +++ b/src/or/hs_service.c @@ -80,6 +80,7 @@ static smartlist_t *hs_service_staging_list; * reupload if needed */ static int consider_republishing_hs_descriptors = 0; +/* Static declaration. */ static void set_descriptor_revision_counter(hs_descriptor_t *hs_desc); static void move_descriptors(hs_service_t *src, hs_service_t *dst); @@ -152,6 +153,12 @@ register_service(hs_service_ht *map, hs_service_t *service) } /* Taking ownership of the object at this point. */ HT_INSERT(hs_service_ht, map, service); + + /* If we just modified the global map, we notify. */ + if (map == hs_service_map) { +hs_service_map_has_changed(); + } + return 0; } @@ -178,6 +185,11 @@ remove_service(hs_service_ht *map, hs_service_t *service) "while removing service %s", escaped(service->config.directory_path)); } + + /* If we just modified the global map, we notify. */ + if (map == hs_service_map) { +hs_service_map_has_changed(); + } } /* Set the default values for a service configuration object c. */ @@ -916,6 +928,11 @@ register_all_services(void) smartlist_clear(hs_service_staging_list); service_free_all(); hs_service_map = new_service_map; + /* We've just register services into the new map and now we've replaced the + * global map with it so we have to notify that the change happened. When + * registering a service, the notify is only triggered if the destination + * map is the global map for which in here it was not. */ + hs_service_map_has_changed(); } /* Write the onion address of a given service to the given filename fname_ in @@ -2936,6 +2953,17 @@ service_add_fnames_to_list(const hs_service_t *service, smartlist_t *list) /* Public API */ /* == */ +/* This is called everytime the service map (v2 or v3) changes that is if an + * element is added or removed. */ +void +hs_service_map_has_changed(void) +{ + /* If we now have services where previously we had not, we need to enable + * the HS service main loop event. If we changed to having no services, we + * need to disable the event. */ + rescan_periodic_events(get_options()); +} + /* Upload an encoded descriptor in encoded_desc of the given version. This * descriptor is for the service identity_pk and blinded_pk used to setup the * directory connection identifier. It is uploaded to the directory hsdir_rs diff --git a/src/or/hs_service.h b/src/or/hs_service.h index d163eeef2..2e27d8a89 100644 --- a/src/or/hs_service.h +++ b/src/or/hs_service.h @@ -260,6 +260,7 @@ void hs_service_lists_fnames_for_sandbox(smartlist_t *file_list, int hs_service_set_conn_addr_port(const origin_circuit_t *circ, edge_connection_t *conn); +void hs_service_map_has_changed(void); void hs_service_dir_info_changed(void); void hs_service_run_scheduled_events(time_t now); void hs_service_circuit_has_opened(origin_circuit_t *circ); diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 1a93c3643..afaeabe5d 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -348,6 +348,13 @@ rend_add_service(smartlist_t *service_list, rend_service_t *service) /* The service passed all the checks */ tor_assert(s_list); smartlist_add(s_list, service); + + /* Notify that our global service list has changed only if this new service + * went into our global list. If not, when we move service from the staging + * list to the new list, a notify is triggered. */ + if (s_list == rend_service_list) { +hs_service_map_has_changed(); + } return 0; } @@ -609,6 +616,8 @@ rend_service_prune_list_impl_(void) circuit_mark_for_close(TO_CIRCUIT(ocirc), END_CIRC_REASON_FINISHED); } smartlist_free(surviving_services); + /* Notify that our global service list has changed. */ + hs_service_map_has_changed(); } /* Try to prune our main service list using the temporary one that we just @@ -958,6 +967,8 @@ rend_service_del_ephemeral(const char *service_id) } } SMARTLIST_FOREACH_END(circ); smartlist_remove(rend_service_list, s); + /* Notify that we just removed a service
[tor-commits] [tor/master] test: Unit test for the HS service event rescan
commit 8b58e1e323e362463906d2576b9d2b9e788c2f30 Author: David GouletDate: Fri Apr 27 11:16:00 2018 -0400 test: Unit test for the HS service event rescan Because we rescan the main loop event list if the global map of services has changed, this makes sure it does work. Signed-off-by: David Goulet --- src/test/test_periodic_event.c | 57 ++ 1 file changed, 57 insertions(+) diff --git a/src/test/test_periodic_event.c b/src/test/test_periodic_event.c index 9f62cd680..74e799360 100644 --- a/src/test/test_periodic_event.c +++ b/src/test/test_periodic_event.c @@ -253,6 +253,62 @@ test_pe_get_roles(void *arg) hs_free_all(); } +static void +test_pe_hs_service(void *arg) +{ + hs_service_t service, *to_remove = NULL; + + (void) arg; + + hs_init(); + /* We need to put tor in hibernation live state so the events requiring + * network gets enabled. */ + consider_hibernation(time(NULL)); + /* Initialize the events so we can enable them */ + initialize_periodic_events(); + + /* Hack: We'll set a dumb fn() of each events so they don't get called when + * dispatching them. We just want to test the state of the callbacks, not + * the whole code path. */ + for (int i = 0; periodic_events[i].name; ++i) { +periodic_event_item_t *item = _events[i]; +item->fn = dumb_event_fn; + } + + /* This should trigger a rescan of the list and enable the HS service + * events. */ + register_dummy_hidden_service(); + /* Note down the reference because we need to remove this service from the + * global list before the hs_free_all() call so it doesn't try to free + * memory on the stack. Furthermore, we can't remove it now else it will + * trigger a rescan of the event disabling the HS service event. */ + to_remove = + + for (int i = 0; periodic_events[i].name; ++i) { +periodic_event_item_t *item = _events[i]; +if (item->roles & PERIODIC_EVENT_ROLE_HS_SERVICE) { + tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); +} + } + to_remove = NULL; + + /* Remove the service from the global map, it should trigger a rescan and + * disable the HS service events. */ + remove_service(get_hs_service_map(), ); + for (int i = 0; periodic_events[i].name; ++i) { +periodic_event_item_t *item = _events[i]; +if (item->roles & PERIODIC_EVENT_ROLE_HS_SERVICE) { + tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); +} + } + + done: + if (to_remove) { +remove_service(get_hs_service_map(), to_remove); + } + hs_free_all(); +} + #define PE_TEST(name) \ { #name, test_pe_## name , TT_FORK, NULL, NULL } @@ -260,6 +316,7 @@ struct testcase_t periodic_event_tests[] = { PE_TEST(initialize), PE_TEST(launch), PE_TEST(get_roles), + PE_TEST(hs_service), END_OF_TESTCASES }; ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] main: Don't rescan main loop events if not initialized
commit 3ab017b10c64e090a5a3f197315ddcdbc6de698c Author: David GouletDate: Fri Apr 27 11:14:33 2018 -0400 main: Don't rescan main loop events if not initialized This is done because it makes our life easier with unit tests. Also, a rescan on an uninitialized event list will result in a stacktrace. Signed-off-by: David Goulet --- src/or/main.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/or/main.c b/src/or/main.c index c1103edb3..10f26c954 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1553,6 +1553,13 @@ rescan_periodic_events(const or_options_t *options) { tor_assert(options); + /* Avoid scanning the event list if we haven't initialized it yet. This is + * particularly useful for unit tests in order to avoid initializing main + * loop events everytime. */ + if (!periodic_events_initialized) { +return; + } + int roles = get_my_roles(options); for (int i = 0; periodic_events[i].name; ++i) { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-topics] Update translations for support-topics
commit 3ff8fd45c3d28579d7339ad90f8c8929cf71f195 Author: Translation commit botDate: Fri Apr 27 15:50:38 2018 + Update translations for support-topics --- ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja.json b/ja.json index 54f01c9c8..919fc6a31 100644 --- a/ja.json +++ b/ja.json @@ -27,7 +27,7 @@ "connecting": { "path": "#connectingtotor", "control": "connectingtotor", - "label": "Connecting To Tor" + "label": "Torã«æ¥ç¶ãã¦ãã¾ã" }, "censorship": { "path": "#censorship", ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-tormessenger] Update translations for support-tormessenger
commit 409c8d4166bb3e1d05f6a7680c657cc6895a1a9c Author: Translation commit botDate: Fri Apr 27 15:50:46 2018 + Update translations for support-tormessenger --- ja.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ja.json b/ja.json index bbad42d5c..7e6d722fb 100644 --- a/ja.json +++ b/ja.json @@ -8,8 +8,8 @@ "messenger-2": { "id": "#messenger-2", "control": "messenger-2", - "title": "What platforms is Tor Messenger available on?", - "description": "Tor Messenger (beta) is currently available on Linux, Windows, and OSX." + "title": "Tor Messengerã¯ã©ã®ãã©ãããã©ã¼ã ã«å¯¾å¿ãã¦ãã¾ããï¼", + "description": "Tor Messenger (beta)ã¯ç¾å¨Linux,Windows,OSXã«å¯¾å¿ãã¦ãã¾ãã" }, "messenger-3": { "id": "#messenger-3", ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-tbb] Update translations for support-tbb
commit 558d66e0ac4e80f4db447b16fd83cdee17ed319a Author: Translation commit botDate: Fri Apr 27 15:50:30 2018 + Update translations for support-tbb --- ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja.json b/ja.json index 556a31c5d..848488771 100644 --- a/ja.json +++ b/ja.json @@ -242,7 +242,7 @@ "tbb-40": { "id": "#tbb-40", "control": "tbb-40", - "title": "Does Tor Browser use a different circuit for each website?", + "title": "Torãã©ã¦ã¶ã¯ããããã®Webãµã¤ããã¨ã«ç°ãªããµã¼ãããã使ç¨ãã¾ããï¼", "description": "In Tor Browser, every domain gets its own circuit. âhttps://www.torproject.org/projects/torbrowser/design/#identifier-linkability\;>The Design and Implementation of Tor Browser document has further details regarding this issue." }, "tbb-41": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-miscellaneous] Update translations for support-miscellaneous
commit 12b20c58fa9f31054d2457e1d879bb91e7adc73e Author: Translation commit botDate: Fri Apr 27 15:50:22 2018 + Update translations for support-miscellaneous --- ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja.json b/ja.json index d497cbdde..acaa7e58d 100644 --- a/ja.json +++ b/ja.json @@ -32,7 +32,7 @@ "misc-6": { "id": "#misc-6", "control": "misc-6", - "title": "Does Tor keep logs?", + "title": "Torã¯ãã°ãä¿æãã¾ããï¼", "description": "Tor doesn't keep any logs that could identify a particular user. We do take some safe measurements of how the network functions, which you can check out at https://metrics.torproject.org/\;>âTor Metrics." }, "misc-7": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tor-browser-manual] Update translations for tor-browser-manual
commit 3e6da7605de712106391d4fb5f5bffabd2ecaa32 Author: Translation commit botDate: Fri Apr 27 15:49:40 2018 + Update translations for tor-browser-manual --- ja/ja.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ja/ja.po b/ja/ja.po index 1762d5868..4e9c7afc6 100644 --- a/ja/ja.po +++ b/ja/ja.po @@ -8,12 +8,13 @@ # Hussein Hassan , 2017 # daisuke osada (daiskeh) , 2017 # Steve Dougherty, 2018 +# ishikawa satoru , 2018 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2016-12-06 16:36-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Steve Dougherty, 2018\n" +"Last-Translator: ishikawa satoru , 2018\n" "Language-Team: Japanese (https://www.transifex.com/otf/teams/1519/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1005,7 +1006,7 @@ msgstr "" #: secure-connections.page:81 msgid "Username and password used for authentication." -msgstr "" +msgstr "èªè¨¼ã®ããã®ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ã" #: secure-connections.page:92 msgid "Data being transmitted." ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-greeter-2] Update translations for tails-greeter-2
commit 0bc1a7f83aa7a2c9d2a34e4fb12246506d30177e Author: Translation commit botDate: Fri Apr 27 15:49:24 2018 + Update translations for tails-greeter-2 --- ja/ja.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ja/ja.po b/ja/ja.po index ba8f8cf1e..6c66969fd 100644 --- a/ja/ja.po +++ b/ja/ja.po @@ -10,7 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-01 20:26+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: TEN CO , 2018\n" +"Last-Translator: ishikawa satoru , 2018\n" "Language-Team: Japanese (https://www.transifex.com/otf/teams/1519/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -145,7 +145,7 @@ msgstr "" #: ../data/greeter.ui.h:32 msgid "Enter your passphrase to unlock the persistent storage" -msgstr "" +msgstr "æ°¸ç¶ã¹ãã¬ã¼ã¸ã解é¤ããããã®ãã¹ãã¬ã¼ãºãå ¥åãã¦ãã ãã" #: ../data/greeter.ui.h:33 ../tailsgreeter/gui.py:478 #: ../tailsgreeter/gui.py:528 ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Merge branch 'ticket25376_034_031_squashed'
commit 3a47dfed349ee2c05f30ba142d3583772fa2287f Merge: cc74dc006 d6903e9e8 Author: Nick MathewsonDate: Fri Apr 27 09:28:43 2018 -0400 Merge branch 'ticket25376_034_031_squashed' changes/ticket25376_25762 | 10 ++ src/or/hibernate.c | 10 +- src/or/main.c | 78 +- src/or/main.h | 1 + src/or/periodic.h | 15 ++-- src/test/test_periodic_event.c | 4 +++ 6 files changed, 84 insertions(+), 34 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] main: Add mainloop callback event flags
commit 05d314f888dd96840d92fbcc513974487485f4cb Author: David GouletDate: Thu Apr 26 14:20:31 2018 -0400 main: Add mainloop callback event flags Implement the ability to set flags per events which influences the set up of the event. This commit only adds one flag which is "need network" meaning that the event is not enabled if tor has disabled the network or if hibernation mode. Signed-off-by: David Goulet --- changes/ticket25376_25762 | 10 ++ src/or/main.c | 75 ++ src/or/periodic.h | 15 +++-- src/test/test_periodic_event.c | 4 +++ 4 files changed, 73 insertions(+), 31 deletions(-) diff --git a/changes/ticket25376_25762 b/changes/ticket25376_25762 new file mode 100644 index 0..b3ebf56d3 --- /dev/null +++ b/changes/ticket25376_25762 @@ -0,0 +1,10 @@ + o Major feature (main loop, CPU usage): +- Previously, tor would enable at startup all possible main loop event + regardless if it needed them. For instance, directory authorities + callbacks were fired up even for client only. We have now refactored this + whole interface to only enable the appropriate callbacks depending on what + are tor roles (client only, relay, hidden service, etc.). Furthermore, + these events now depend on DisableNetwork or the hibernation state in + order to enable them. This is a big step towards reducing client CPU usage + by reducing the amount of wake ups the daemon does. Closes ticket 25376 + and 25762. diff --git a/src/or/main.c b/src/or/main.c index a7896fafa..c7bd720cc 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1362,54 +1362,65 @@ CALLBACK(write_stats_file); #undef CALLBACK /* Now we declare an array of periodic_event_item_t for each periodic event */ -#define CALLBACK(name, r) PERIODIC_EVENT(name, r) +#define CALLBACK(name, r, f) PERIODIC_EVENT(name, r, f) STATIC periodic_event_item_t periodic_events[] = { /* Everyone needs to run those. */ - CALLBACK(add_entropy, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(check_expired_networkstatus, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(clean_caches, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(fetch_networkstatus, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(heartbeat, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(launch_descriptor_fetches, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(reset_padding_counts, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(retry_listeners, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(rotate_x509_certificate, PERIODIC_EVENT_ROLE_ALL), - CALLBACK(write_stats_file, PERIODIC_EVENT_ROLE_ALL), + CALLBACK(add_entropy, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(check_expired_networkstatus, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(clean_caches, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(fetch_networkstatus, PERIODIC_EVENT_ROLE_ALL, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(heartbeat, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(launch_descriptor_fetches, PERIODIC_EVENT_ROLE_ALL, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(reset_padding_counts, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(retry_listeners, PERIODIC_EVENT_ROLE_ALL, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(rotate_x509_certificate, PERIODIC_EVENT_ROLE_ALL, 0), + CALLBACK(write_stats_file, PERIODIC_EVENT_ROLE_ALL, 0), /* Routers (bridge and relay) only. */ - CALLBACK(check_descriptor, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(check_ed_keys, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(check_for_reachability_bw, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(check_onion_keys_expiry_time, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(clean_consdiffmgr, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(expire_old_ciruits_serverside, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(retry_dns, PERIODIC_EVENT_ROLE_ROUTER), - CALLBACK(rotate_onion_key, PERIODIC_EVENT_ROLE_ROUTER), + CALLBACK(check_descriptor, PERIODIC_EVENT_ROLE_ROUTER, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(check_ed_keys, PERIODIC_EVENT_ROLE_ROUTER, 0), + CALLBACK(check_for_reachability_bw, PERIODIC_EVENT_ROLE_ROUTER, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(check_onion_keys_expiry_time, PERIODIC_EVENT_ROLE_ROUTER, 0), + CALLBACK(clean_consdiffmgr, PERIODIC_EVENT_ROLE_ROUTER, 0), + CALLBACK(expire_old_ciruits_serverside, PERIODIC_EVENT_ROLE_ROUTER, + PERIODIC_EVENT_FLAG_NEED_NET), + CALLBACK(retry_dns, PERIODIC_EVENT_ROLE_ROUTER, 0), + CALLBACK(rotate_onion_key, PERIODIC_EVENT_ROLE_ROUTER, 0), /* Authorities (bridge and directory) only. */ - CALLBACK(downrate_stability, PERIODIC_EVENT_ROLE_AUTHORITIES), - CALLBACK(launch_reachability_tests, PERIODIC_EVENT_ROLE_AUTHORITIES), - CALLBACK(save_stability, PERIODIC_EVENT_ROLE_AUTHORITIES), + CALLBACK(downrate_stability, PERIODIC_EVENT_ROLE_AUTHORITIES, 0), + CALLBACK(launch_reachability_tests, PERIODIC_EVENT_ROLE_AUTHORITIES, +
[tor-commits] [tor/master] hibernation: Rescan the event list on state change
commit d6903e9e87ffd39846b7cacebcfc8bae71f3ca5f Author: David GouletDate: Thu Apr 26 15:00:19 2018 -0400 hibernation: Rescan the event list on state change When we change the hibernation state, rescan the main loop event list because the new state might affect the events. Signed-off-by: David Goulet --- src/or/hibernate.c | 10 +- src/or/main.c | 3 +-- src/or/main.h | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 9fed33855..c4ae63acc 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -,10 +,18 @@ getinfo_helper_accounting(control_connection_t *conn, static void on_hibernate_state_change(hibernate_state_t prev_state) { - (void)prev_state; /* Should we do something with this? */ control_event_server_status(LOG_NOTICE, "HIBERNATION_STATUS STATUS=%s", hibernate_state_to_string(hibernate_state)); + + /* We are changing hibernation state, this can affect the main loop event + * list. Rescan it to update the events state. We do this whatever the new + * hibernation state because they can each possibly affect an event. The + * initial state means we are booting up so we shouldn't scan here because + * at this point the events in the list haven't been initialized. */ + if (prev_state != HIBERNATE_STATE_INITIAL) { +rescan_periodic_events(get_options()); + } } #ifdef TOR_UNIT_TESTS diff --git a/src/or/main.c b/src/or/main.c index c7bd720cc..b5a701713 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -150,7 +150,6 @@ static int run_main_loop_until_done(void); static void process_signal(int sig); static void shutdown_did_not_work_callback(evutil_socket_t fd, short event, void *arg) ATTR_NORETURN; -static void rescan_periodic_events(const or_options_t *options); /* START VARIABLES **/ @@ -1549,7 +1548,7 @@ teardown_periodic_events(void) /** Do a pass at all our periodic events, disable those we don't need anymore * and enable those we need now using the given options. */ -static void +void rescan_periodic_events(const or_options_t *options) { tor_assert(options); diff --git a/src/or/main.h b/src/or/main.h index 33ef40ce4..2447339fb 100644 --- a/src/or/main.h +++ b/src/or/main.h @@ -62,6 +62,7 @@ void reset_all_main_loop_timers(void); void reschedule_descriptor_update_check(void); void reschedule_directory_downloads(void); void mainloop_schedule_postloop_cleanup(void); +void rescan_periodic_events(const or_options_t *options); MOCK_DECL(long,get_uptime,(void)); MOCK_DECL(void,reset_uptime,(void)); ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [webwml/master] Remove mozilla fellow job posting
commit 7bdac79da25acec5a9ece963bd3ef50aeec512fb Author: hiroDate: Fri Apr 27 13:36:23 2018 +0200 Remove mozilla fellow job posting --- about/en/jobs.wml | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/about/en/jobs.wml b/about/en/jobs.wml index 55cea46f..877e312d 100644 --- a/about/en/jobs.wml +++ b/about/en/jobs.wml @@ -12,14 +12,14 @@ The Tor Project is always looking for more great people to join our team! -#At the moment, we don't have any official open positions. Please check back -# soon, though! In the meantime, you may want to glance at our -#volunteers page. +At the moment, we don't have any official open positions. Please check back + soon, though! In the meantime, you may want to glance at our +volunteers page. -Specifically, we're looking for the following people currently: - - User Advocate (Mozilla fellowship) - +#Specifically, we're looking for the following people currently: +# +# User Advocate (Mozilla fellowship) +# In the past, we looked for the following people: ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-topics_completed] Update translations for support-topics_completed
commit be2728197b3bf3674950499da1401c586991ee76 Author: Translation commit botDate: Fri Apr 27 10:50:37 2018 + Update translations for support-topics_completed --- es.json | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/es.json b/es.json index 3b2ad71b7..86813a614 100644 --- a/es.json +++ b/es.json @@ -5,18 +5,18 @@ "label": "Preguntas más frecuentes" }, "tbb": { - "path": "#tor-browser", - "control": "tor-browser", + "path": "\n#tbb", + "control": "tbb", "label": "Navegador Tor" }, "tormessenger": { - "path": "#tor-messenger", - "control": "tor-messenger", + "path": "#tormessenger", + "control": "tormessenger", "label": "Tor Messenger" }, "tormobile": { - "path": "#tor-mobile", - "control": "tor-mobile", + "path": "#tormobile", + "control": "tormobile", "label": "Tor Mobile" }, "gettor": { @@ -25,8 +25,8 @@ "label": "GetTor" }, "connecting": { - "path": "#connecting-to-tor", - "control": "connecting-to-tor", + "path": "#connectingtotor", + "control": "connectingtotor", "label": "Conectar a Tor" }, "censorship": { @@ -45,8 +45,8 @@ "label": "Operadores" }, "onionservices": { - "path": "#onion-services", - "control": "onion-services", + "path": "#onionservices", + "control": "servicios onion", "label": "Servicios onion" }, "misc": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/support-topics] Update translations for support-topics
commit 84e2e5007310568a995068136e12f32f3dec85fe Author: Translation commit botDate: Fri Apr 27 10:50:30 2018 + Update translations for support-topics --- es.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/es.json b/es.json index 37f95470e..86813a614 100644 --- a/es.json +++ b/es.json @@ -5,7 +5,7 @@ "label": "Preguntas más frecuentes" }, "tbb": { - "path": "#tbb", + "path": "\n#tbb", "control": "tbb", "label": "Navegador Tor" }, @@ -46,7 +46,7 @@ }, "onionservices": { "path": "#onionservices", - "control": "onionservices", + "control": "servicios onion", "label": "Servicios onion" }, "misc": { ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits