[tor-commits] [translation/torbutton-torbuttondtd_completed] pulling translations from transifex
commit e51d7a6b67b464f170dbecd5b3f7f302f09ad2bf Author: Translation commit bot Date: Sat Feb 3 03:44:45 2018 + pulling translations from transifex --- bg/torbutton.dtd| 50 ++ bn_BD/torbutton.dtd | 50 ++ ca/torbutton.dtd| 50 ++ da/torbutton.dtd| 50 ++ de/torbutton.dtd| 51 +++ en/torbutton.dtd| 50 ++ en_GB/torbutton.dtd | 50 ++ es/torbutton.dtd| 50 ++ fr/torbutton.dtd| 50 ++ fr_CA/torbutton.dtd | 50 ++ ga/torbutton.dtd| 50 ++ he/torbutton.dtd| 50 ++ id/torbutton.dtd| 50 ++ it/torbutton.dtd| 50 ++ lv/torbutton.dtd| 50 ++ mk/torbutton.dtd| 50 ++ nb/torbutton.dtd| 50 ++ nl/torbutton.dtd| 50 ++ pt/torbutton.dtd| 50 ++ pt_BR/torbutton.dtd | 50 ++ ro/torbutton.dtd| 50 ++ ru/torbutton.dtd| 50 ++ sv/torbutton.dtd| 50 ++ tr/torbutton.dtd| 50 ++ zh_CN/torbutton.dtd | 50 ++ zh_TW/torbutton.dtd | 50 ++ 26 files changed, 1301 insertions(+) diff --git a/bg/torbutton.dtd b/bg/torbutton.dtd new file mode 100644 index 0..12be1d2d9 --- /dev/null +++ b/bg/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bn_BD/torbutton.dtd b/bn_BD/torbutton.dtd new file mode 100644 index 0..0e0c3a040 --- /dev/null +++ b/bn_BD/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ca/torbutton.dtd b/ca/torbutton.dtd new file mode 100644 index 0..e8ba3d215 --- /dev/null +++ b/ca/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/da/torbutton.dtd b/da/torbutton.dtd new file mode 100644 index 0..ac93e670b --- /dev/null +++ b/da/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/de/torbutton.dtd b/de/torbutton.dtd new file mode 100644 index 0..b4fb85841 --- /dev/null +++ b/de/torbutton.dtd @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/torbutton.dtd b/en/torbutton.dtd new file mode 100644 index 0..7ccad6a82 --- /dev/null +++ b/en/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en_GB/torbutton.dtd b/en_GB/torbutton.dtd new file mode 100644 index 0..1e1189a2c --- /dev/null +++ b/en_GB/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/es/torbutton.dtd b/es/torbutton.dtd new file mode 100644 index 0..54087366a --- /dev/null +++ b/es/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fr/torbutton.dtd b/fr/torbutton.dtd new file mode 100644 index 0..76d1bfe5c --- /dev/null +++ b/fr/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fr_CA/torbutton.dtd b/fr_CA/torbutton.dtd new file mode 100644 index 0..1b4cb823a --- /dev/null +++ b/fr_CA/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ga/torbutton.dtd b/ga/torbutton.dtd new file mode 100644 index 0..ff48feb18 --- /dev/null +++ b/ga/torbutton.dtd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -
[tor-commits] [translation-tools/master] Adding torbutton-torbuttonproperties_completed and torbutton-torbuttondtd_completed
commit 6280b9e87c7625ab41901e9a6ccb09aac999b1dc Author: Colin Childs Date: Fri Feb 2 21:31:01 2018 -0600 Adding torbutton-torbuttonproperties_completed and torbutton-torbuttondtd_completed --- config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config b/config index b5d375b..dd9a27f 100644 --- a/config +++ b/config @@ -18,8 +18,8 @@ tor-launcher-network-settings tor-launcher-network-settings_completed tails-misc tails-misc_completed abouttor-homepage abouttor-homepage_completed torbutton-brandproperties torbutton-brandproperties_completed torbutton-branddtd -torbutton-branddtd_completed torbutton-torbuttonproperties -torbutton-torbuttondtd tails-iuk tails-iuk_completed tails-perl5lib +torbutton-branddtd_completed torbutton-torbuttonproperties torbutton-torbuttonproperties_completed +torbutton-torbuttondtd torbutton-torbuttondtd_completed tails-iuk tails-iuk_completed tails-perl5lib tails-perl5lib_completed tor-and-https tor-and-https_completed tor_animation tor_animation_completed torbutton-aboutdialogdtd torbutton-aboutdialogdtd_completed torbutton-abouttorproperties ___ 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 02cbcb398169661a54eedab0b4bcd39d8fb902d2 Author: Translation commit bot Date: Sat Feb 3 00:50:31 2018 + Update translations for tails-greeter-2 --- nl/nl.po | 88 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/nl/nl.po b/nl/nl.po index 331f691b3..558162bba 100644 --- a/nl/nl.po +++ b/nl/nl.po @@ -10,7 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-22 14:15+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Joren Vandeweyer , 2017\n" +"Last-Translator: blacklight, 2017\n" "Language-Team: Dutch (https://www.transifex.com/otf/teams/1519/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,7 +38,7 @@ msgstr "Voer een beheerderswachtwoord in." #: ../data/greeter.ui.h:4 msgid "Confirm" -msgstr "Bevestig" +msgstr "Bevestigen" #: ../data/greeter.ui.h:5 msgid "Confirm your administration password" @@ -46,7 +46,7 @@ msgstr "Bevestig je beheerderswachtwoord" #: ../data/greeter.ui.h:6 msgid "Disable" -msgstr "Schakel uit" +msgstr "Uitschakelen" #. This string will never be displayed in the 1st version of the greeter. #: ../data/greeter.ui.h:8 @@ -66,11 +66,11 @@ msgstr "" #. This string will never be displayed in the 1st version of the greeter. #: ../data/greeter.ui.h:12 msgid "Microsoft Windows 10 camouflage" -msgstr "Microsoft Windows 10 camouflage" +msgstr "Microsoft Windows 10-camouflage" #: ../data/greeter.ui.h:13 msgid "MAC Address Spoofing" -msgstr "MAC adres spoofing" +msgstr "MAC-adresspoofing" #: ../data/greeter.ui.h:14 msgid "" @@ -79,29 +79,29 @@ msgid "" " as it helps you hide your geographical location. But it might also create " "connectivity problems or look suspicious." msgstr "" -"MAC adres spoofing verbergt het serienummer van je netwerkkaart (wifi of " -"kabel) op lokale netwerken. Spoofing MAC adressen is meestal veiliger want " -"het helpt in het verbergen van je geografische locatie. Maar het kan ook " -"verbindingsproblemen met zich meebrengen of er verdacht uitzien." +"MAC-adresspoofing verbergt het serienummer van je netwerkkaart (wifi of " +"kabel) op lokale netwerken. Spoofen van MAC-adressen is meestal veiliger, " +"want het helpt in het verbergen van je geografische locatie. Maar het kan " +"ook verbindingsproblemen met zich meebrengen of er verdacht uitzien." #: ../data/greeter.ui.h:15 msgid "Spoof all MAC addresses (default)" -msgstr "Alle MAC adressen spoofen (standaard)" +msgstr "Alle MAC-adressen spoofen (standaard)" #: ../data/greeter.ui.h:16 msgid "Don't spoof MAC addresses" -msgstr "MAC adressen niet spoofen" +msgstr "MAC-adressen niet spoofen" #: ../data/greeter.ui.h:17 ../tailsgreeter/gui.py:532 msgid "Cannot unlock encrypted storage with this passphrase." -msgstr "Kan versleutelde opslag niet ontgrendelen met deze wachtzin." +msgstr "Kan versleutelde opslag niet ontgrendelen met dit wachtwoord." #: ../data/greeter.ui.h:18 msgid "" "You will configure the Tor bridge and local proxy later on after connecting " "to a network." msgstr "" -"Je zal de Tor Bridge en lokale proxy later instellen nadat je met een " +"Je zal de Tor-bridge en lokale proxy later instellen nadat je met een " "netwerk verbinding hebt gemaakt." #: ../data/greeter.ui.h:19 @@ -114,28 +114,28 @@ msgctxt "" msgid "" "To get guided through Tails' settings, click on Take a Tour above" msgstr "" -"Om de rondleiding door de Tails' settings te volgen, klik op Start de " -"Rondleiding hierboven" +"Klik op Start de rondleiding hierboven om de rondleiding door de " +"instellingen van Tails te volgen." #: ../data/greeter.ui.h:22 msgid "Language & Region" -msgstr "Taal & Regio" +msgstr "Taal & regio" #: ../data/greeter.ui.h:23 msgid "Default Settings" -msgstr "Standaard instellingen" +msgstr "Standaardinstellingen" #: ../data/greeter.ui.h:24 msgid "Save Language & Region Settings" -msgstr "Bewaar Taal & Regio instellingen" +msgstr "Taal- en regio-instellingen opslaan" #: ../data/greeter.ui.h:25 msgid "_Language" -msgstr "_Taal" +msgstr "Taa_l" #: ../data/greeter.ui.h:26 msgid "_Keyboard Layout" -msgstr "_Toetsenbordindeling" +msgstr "Toetsen_bordindeling" #: ../data/greeter.ui.h:27 msgid "_Formats" @@ -147,24 +147,24 @@ msgstr "_Tijdzone" #: ../data/greeter.ui.h:29 msgid "Encrypted _Persistent Storage" -msgstr "Versleutelde _Aanhoudend Opslag" +msgstr "Versleutelde _persistente opslag" #: ../data/greeter.ui.h:30 msgid "Show Passphrase" -msgstr "Toon wachtzin" +msgstr "Wachtwoord weergeven" #: ../data/greeter.ui.h:31 msgid "Configure Persistent Storage" -msgstr "Versleutelde persistente opslag configureren" +msgstr "Persistente opslag configureren" #: ../data/greeter.ui.h:32 msgid "Enter your passphrase to unlock the persistent storage" -msgstr "Voer je wachtzin in om de persistente opslag te ontgrendelen." +msgstr "Voer je wachtwoord in om de pers
[tor-commits] [translation/tails-greeter-2_completed] Update translations for tails-greeter-2_completed
commit baf70b0c3282b5a70c4e8924d051606eebf23249 Author: Translation commit bot Date: Sat Feb 3 00:50:37 2018 + Update translations for tails-greeter-2_completed --- nl/nl.po | 88 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/nl/nl.po b/nl/nl.po index 331f691b3..558162bba 100644 --- a/nl/nl.po +++ b/nl/nl.po @@ -10,7 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-22 14:15+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Joren Vandeweyer , 2017\n" +"Last-Translator: blacklight, 2017\n" "Language-Team: Dutch (https://www.transifex.com/otf/teams/1519/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,7 +38,7 @@ msgstr "Voer een beheerderswachtwoord in." #: ../data/greeter.ui.h:4 msgid "Confirm" -msgstr "Bevestig" +msgstr "Bevestigen" #: ../data/greeter.ui.h:5 msgid "Confirm your administration password" @@ -46,7 +46,7 @@ msgstr "Bevestig je beheerderswachtwoord" #: ../data/greeter.ui.h:6 msgid "Disable" -msgstr "Schakel uit" +msgstr "Uitschakelen" #. This string will never be displayed in the 1st version of the greeter. #: ../data/greeter.ui.h:8 @@ -66,11 +66,11 @@ msgstr "" #. This string will never be displayed in the 1st version of the greeter. #: ../data/greeter.ui.h:12 msgid "Microsoft Windows 10 camouflage" -msgstr "Microsoft Windows 10 camouflage" +msgstr "Microsoft Windows 10-camouflage" #: ../data/greeter.ui.h:13 msgid "MAC Address Spoofing" -msgstr "MAC adres spoofing" +msgstr "MAC-adresspoofing" #: ../data/greeter.ui.h:14 msgid "" @@ -79,29 +79,29 @@ msgid "" " as it helps you hide your geographical location. But it might also create " "connectivity problems or look suspicious." msgstr "" -"MAC adres spoofing verbergt het serienummer van je netwerkkaart (wifi of " -"kabel) op lokale netwerken. Spoofing MAC adressen is meestal veiliger want " -"het helpt in het verbergen van je geografische locatie. Maar het kan ook " -"verbindingsproblemen met zich meebrengen of er verdacht uitzien." +"MAC-adresspoofing verbergt het serienummer van je netwerkkaart (wifi of " +"kabel) op lokale netwerken. Spoofen van MAC-adressen is meestal veiliger, " +"want het helpt in het verbergen van je geografische locatie. Maar het kan " +"ook verbindingsproblemen met zich meebrengen of er verdacht uitzien." #: ../data/greeter.ui.h:15 msgid "Spoof all MAC addresses (default)" -msgstr "Alle MAC adressen spoofen (standaard)" +msgstr "Alle MAC-adressen spoofen (standaard)" #: ../data/greeter.ui.h:16 msgid "Don't spoof MAC addresses" -msgstr "MAC adressen niet spoofen" +msgstr "MAC-adressen niet spoofen" #: ../data/greeter.ui.h:17 ../tailsgreeter/gui.py:532 msgid "Cannot unlock encrypted storage with this passphrase." -msgstr "Kan versleutelde opslag niet ontgrendelen met deze wachtzin." +msgstr "Kan versleutelde opslag niet ontgrendelen met dit wachtwoord." #: ../data/greeter.ui.h:18 msgid "" "You will configure the Tor bridge and local proxy later on after connecting " "to a network." msgstr "" -"Je zal de Tor Bridge en lokale proxy later instellen nadat je met een " +"Je zal de Tor-bridge en lokale proxy later instellen nadat je met een " "netwerk verbinding hebt gemaakt." #: ../data/greeter.ui.h:19 @@ -114,28 +114,28 @@ msgctxt "" msgid "" "To get guided through Tails' settings, click on Take a Tour above" msgstr "" -"Om de rondleiding door de Tails' settings te volgen, klik op Start de " -"Rondleiding hierboven" +"Klik op Start de rondleiding hierboven om de rondleiding door de " +"instellingen van Tails te volgen." #: ../data/greeter.ui.h:22 msgid "Language & Region" -msgstr "Taal & Regio" +msgstr "Taal & regio" #: ../data/greeter.ui.h:23 msgid "Default Settings" -msgstr "Standaard instellingen" +msgstr "Standaardinstellingen" #: ../data/greeter.ui.h:24 msgid "Save Language & Region Settings" -msgstr "Bewaar Taal & Regio instellingen" +msgstr "Taal- en regio-instellingen opslaan" #: ../data/greeter.ui.h:25 msgid "_Language" -msgstr "_Taal" +msgstr "Taa_l" #: ../data/greeter.ui.h:26 msgid "_Keyboard Layout" -msgstr "_Toetsenbordindeling" +msgstr "Toetsen_bordindeling" #: ../data/greeter.ui.h:27 msgid "_Formats" @@ -147,24 +147,24 @@ msgstr "_Tijdzone" #: ../data/greeter.ui.h:29 msgid "Encrypted _Persistent Storage" -msgstr "Versleutelde _Aanhoudend Opslag" +msgstr "Versleutelde _persistente opslag" #: ../data/greeter.ui.h:30 msgid "Show Passphrase" -msgstr "Toon wachtzin" +msgstr "Wachtwoord weergeven" #: ../data/greeter.ui.h:31 msgid "Configure Persistent Storage" -msgstr "Versleutelde persistente opslag configureren" +msgstr "Persistente opslag configureren" #: ../data/greeter.ui.h:32 msgid "Enter your passphrase to unlock the persistent storage" -msgstr "Voer je wachtzin in om de persistente opslag te ontgrendelen." +msgstr "Voer je wachtwoord in
[tor-commits] [translation/mat-gui] Update translations for mat-gui
commit 8b2fcb113f8d61a02dc64d89d985107c03c07695 Author: Translation commit bot Date: Sat Feb 3 00:46:32 2018 + Update translations for mat-gui --- nl.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nl.po b/nl.po index 0675eccb1..02bccc5ed 100644 --- a/nl.po +++ b/nl.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2017-11-24 17:09+\n" +"PO-Revision-Date: 2018-02-03 00:38+\n" "Last-Translator: Cleveridge \n" "Language-Team: Dutch (http://www.transifex.com/otf/torproject/language/nl/)\n" "MIME-Version: 1.0\n" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/mat-gui_completed] Update translations for mat-gui_completed
commit 25988c7f01bf6b0ff6f730085c72466dc7622535 Author: Translation commit bot Date: Sat Feb 3 00:46:38 2018 + Update translations for mat-gui_completed --- nl.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nl.po b/nl.po index 0675eccb1..02bccc5ed 100644 --- a/nl.po +++ b/nl.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2017-11-24 17:09+\n" +"PO-Revision-Date: 2018-02-03 00:38+\n" "Last-Translator: Cleveridge \n" "Language-Team: Dutch (http://www.transifex.com/otf/torproject/language/nl/)\n" "MIME-Version: 1.0\n" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-openpgp-applet] Update translations for tails-openpgp-applet
commit e68f1491b736f971aa98dda5348868a737862d2c Author: Translation commit bot Date: Fri Feb 2 23:18:39 2018 + Update translations for tails-openpgp-applet --- ti/openpgp-applet.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ti/openpgp-applet.pot b/ti/openpgp-applet.pot index 14bd0ee2a..d738cfd39 100644 --- a/ti/openpgp-applet.pot +++ b/ti/openpgp-applet.pot @@ -31,7 +31,7 @@ msgstr "" #: bin/openpgp-applet:177 msgid "About" -msgstr "" +msgstr "á¥ááá£" #: bin/openpgp-applet:232 msgid "Encrypt Clipboard with _Passphrase" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/mat-gui] Update translations for mat-gui
commit cde3afb953ccb565bf213b299cbba7ce892399d1 Author: Translation commit bot Date: Fri Feb 2 23:16:26 2018 + Update translations for mat-gui --- ti.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ti.po b/ti.po index 48d4cc135..b3a027a71 100644 --- a/ti.po +++ b/ti.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-02-10 23:06+0100\n" -"PO-Revision-Date: 2017-09-19 19:57+\n" +"PO-Revision-Date: 2018-02-02 22:57+\n" "Last-Translator: carolyn \n" "Language-Team: Tigrinya (http://www.transifex.com/otf/torproject/language/ti/)\n" "MIME-Version: 1.0\n" @@ -61,7 +61,7 @@ msgstr "" #: mat-gui:219 msgid "Preferences" -msgstr "" +msgstr "áá³ááá³áµ" #: mat-gui:232 msgid "Reduce PDF quality" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/tails-persistence-setup] Update translations for tails-persistence-setup
commit 978a9e0c86be587904fe6d1df21921c484caf70e Author: Translation commit bot Date: Fri Feb 2 23:16:00 2018 + Update translations for tails-persistence-setup --- ti/ti.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ti/ti.po b/ti/ti.po index d9e9ca0c5..0198e8fbe 100644 --- a/ti/ti.po +++ b/ti/ti.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: Tails developers \n" "POT-Creation-Date: 2017-05-15 13:51+0200\n" -"PO-Revision-Date: 2017-05-17 03:09+\n" +"PO-Revision-Date: 2018-02-02 23:11+\n" "Last-Translator: carolyn \n" "Language-Team: Tigrinya (http://www.transifex.com/otf/torproject/language/ti/)\n" "MIME-Version: 1.0\n" @@ -312,7 +312,7 @@ msgstr "" #: ../lib/Tails/Persistence/Step/Delete.pm:54 msgid "Delete" -msgstr "" +msgstr "á°ááµáµ" #: ../lib/Tails/Persistence/Step/Delete.pm:111 msgid "Deleting..." ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd
commit 9c98ff4bdb4053b95f2e376e77a65507f8c7f1c2 Author: Translation commit bot Date: Fri Feb 2 22:47:43 2018 + Update translations for torbutton-torbuttondtd --- de/torbutton.dtd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/de/torbutton.dtd b/de/torbutton.dtd index a9e38502f..b4fb85841 100644 --- a/de/torbutton.dtd +++ b/de/torbutton.dtd @@ -33,11 +33,11 @@ - - + ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] fuzz: Move init_protocol_warning_severity_level() into global_init()
commit 953c769a867415f81dc016f30575dee6c0b2cb43 Author: Nick Mathewson Date: Fri Feb 2 17:42:23 2018 -0500 fuzz: Move init_protocol_warning_severity_level() into global_init() This is needed so llvm_fuzz will see it too. --- src/test/fuzz/fuzzing_common.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/fuzz/fuzzing_common.c b/src/test/fuzz/fuzzing_common.c index 7c9fac748..a96552f0f 100644 --- a/src/test/fuzz/fuzzing_common.c +++ b/src/test/fuzz/fuzzing_common.c @@ -110,6 +110,9 @@ global_init(void) /* Make BUG() and nonfatal asserts crash */ tor_set_failed_assertion_callback(abort); + + /* Make protocol warnings handled correctly. */ + init_protocol_warning_severity_level(); } #ifdef LLVM_FUZZ @@ -152,8 +155,6 @@ main(int argc, char **argv) } } - init_protocol_warning_severity_level(); - { log_severity_list_t s; memset(&s, 0, sizeof(s)); ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] geoip: Add clientmap_entry_new() function
commit e758d659a0bc8b9a0e2bd6a0126755fd1fb58e0a Author: David Goulet Date: Fri Feb 2 13:24:37 2018 -0500 geoip: Add clientmap_entry_new() function Signed-off-by: David Goulet --- src/or/geoip.c | 32 ++-- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/or/geoip.c b/src/or/geoip.c index 92db9742e..76fca43f6 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -580,6 +580,31 @@ clientmap_entry_free(clientmap_entry_t *ent) tor_free(ent); } +/* Return a newly allocated clientmap entry with the given action and address + * that are mandatory. The transport_name can be optional. This can't fail. */ +static clientmap_entry_t * +clientmap_entry_new(geoip_client_action_t action, const tor_addr_t *addr, +const char *transport_name) +{ + clientmap_entry_t *entry; + + tor_assert(action == GEOIP_CLIENT_CONNECT || + action == GEOIP_CLIENT_NETWORKSTATUS); + tor_assert(addr); + + entry = tor_malloc_zero(sizeof(clientmap_entry_t)); + entry->action = action; + tor_addr_copy(&entry->addr, addr); + if (transport_name) { +entry->transport_name = tor_strdup(transport_name); + } + + /* Allocated and initialized, note down its size for the OOM handler. */ + geoip_increment_client_history_cache_size(clientmap_entry_size(entry)); + + return entry; +} + /** Clear history of connecting clients used by entry and bridge stats. */ static void client_history_clear(void) @@ -632,13 +657,8 @@ geoip_note_client_seen(geoip_client_action_t action, ent = HT_FIND(clientmap, &client_history, &lookup); if (! ent) { -ent = tor_malloc_zero(sizeof(clientmap_entry_t)); -tor_addr_copy(&ent->addr, addr); -if (transport_name) - ent->transport_name = tor_strdup(transport_name); -ent->action = (int)action; +ent = clientmap_entry_new(action, addr, transport_name); HT_INSERT(clientmap, &client_history, ent); -geoip_increment_client_history_cache_size(clientmap_entry_size(ent)); } if (now / 60 <= (int)MAX_LAST_SEEN_IN_MINUTES && now >= 0) ent->last_seen_in_minutes = (unsigned)(now/60); ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Merge remote-tracking branch 'dgoulet/ticket24902_029_05'
commit eafa252b26ecf83a8a48e7e19a3315e1d2983186 Merge: 9e48338a1 475218c10 Author: Nick Mathewson Date: Fri Feb 2 15:00:35 2018 -0500 Merge remote-tracking branch 'dgoulet/ticket24902_029_05' changes/ticket25122 | 4 ++ src/or/geoip.c | 148 ++-- src/or/geoip.h | 2 + src/or/relay.c | 16 -- src/test/test.c | 18 +++ 5 files changed, 180 insertions(+), 8 deletions(-) diff --cc src/or/geoip.c index 5b954979b,20dad5f15..15871f0d2 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@@ -510,12 -541,18 +542,21 @@@ HT_PROTOTYPE(clientmap, clientmap_entry HT_GENERATE2(clientmap, clientmap_entry_t, node, clientmap_entry_hash, clientmap_entries_eq, 0.6, tor_reallocarray_, tor_free_) +#define clientmap_entry_free(ent) \ + FREE_AND_NULL(clientmap_entry_t, clientmap_entry_free_, ent) + + /** Return the size of a client map entry. */ + static inline size_t + clientmap_entry_size(const clientmap_entry_t *ent) + { + tor_assert(ent); + return (sizeof(clientmap_entry_t) + + (ent->transport_name ? strlen(ent->transport_name) : 0)); + } + /** Free all storage held by ent. */ static void -clientmap_entry_free(clientmap_entry_t *ent) +clientmap_entry_free_(clientmap_entry_t *ent) { if (!ent) return; diff --cc src/or/relay.c index b1b99526d,22ce76752..506b7eccb --- a/src/or/relay.c +++ b/src/or/relay.c @@@ -2613,11 -2469,15 +2613,15 @@@ static time_t last_time_under_memory_pr STATIC int cell_queues_check_size(void) { + time_t now = time(NULL); size_t alloc = cell_queues_get_total_allocation(); alloc += buf_get_total_allocation(); - alloc += tor_zlib_get_total_allocation(); + alloc += tor_compress_get_total_allocation(); const size_t rend_cache_total = rend_cache_get_total_allocation(); alloc += rend_cache_total; + const size_t geoip_client_cache_total = + geoip_client_cache_total_allocation(); + alloc += geoip_client_cache_total; if (alloc >= get_options()->MaxMemInQueues_low_threshold) { last_time_under_memory_pressure = approx_time(); if (alloc >= get_options()->MaxMemInQueues) { @@@ -2627,7 -2487,15 +2631,13 @@@ if (rend_cache_total > get_options()->MaxMemInQueues / 5) { const size_t bytes_to_remove = rend_cache_total - (size_t)(get_options()->MaxMemInQueues / 10); - alloc -= hs_cache_handle_oom(time(NULL), bytes_to_remove); -rend_cache_clean_v2_descs_as_dir(now, bytes_to_remove); -alloc -= rend_cache_total; -alloc += rend_cache_get_total_allocation(); ++alloc -= hs_cache_handle_oom(now, bytes_to_remove); + } + if (geoip_client_cache_total > get_options()->MaxMemInQueues / 5) { + const size_t bytes_to_remove = + geoip_client_cache_total - + (size_t)(get_options()->MaxMemInQueues / 10); + alloc -= geoip_client_cache_handle_oom(now, bytes_to_remove); } circuits_handle_oom(alloc); return 1; ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] geoip: Increment and decrement functions for the geoip client cache
commit 4d812e29b9b1ec88fe268c150a826466b23a8762 Author: David Goulet Date: Fri Feb 2 13:14:50 2018 -0500 geoip: Increment and decrement functions for the geoip client cache These functions protect againts over and underflow. They BUG() in case we overflow the counter. Signed-off-by: David Goulet --- src/or/geoip.c | 32 ++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/or/geoip.c b/src/or/geoip.c index c5e8cdab9..92db9742e 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -76,6 +76,34 @@ static char geoip6_digest[DIGEST_LEN]; * handler. */ static size_t geoip_client_history_cache_size; +/* Increment the geoip client history cache size counter with the given bytes. + * This prevents an overflow and set it to its maximum in that case. */ +static inline void +geoip_increment_client_history_cache_size(size_t bytes) +{ + /* This is shockingly high, lets log it so it can be reported. */ + IF_BUG_ONCE(geoip_client_history_cache_size > (SIZE_MAX - bytes)) { +geoip_client_history_cache_size = SIZE_MAX; +return; + } + geoip_client_history_cache_size += bytes; +} + +/* Decrement the geoip client history cache size counter with the given bytes. + * This prevents an underflow and set it to 0 in that case. */ +static inline void +geoip_decrement_client_history_cache_size(size_t bytes) +{ + /* Going below 0 means that we either allocated an entry without + * incrementing the counter or we have different sizes when allocating and + * freeing. It shouldn't happened so log it. */ + IF_BUG_ONCE(geoip_client_history_cache_size < bytes) { +geoip_client_history_cache_size = 0; +return; + } + geoip_client_history_cache_size -= bytes; +} + /** Return the index of the country's entry in the GeoIP * country list if it is a valid 2-letter country code, otherwise * return -1. */ @@ -546,7 +574,7 @@ clientmap_entry_free(clientmap_entry_t *ent) if (!ent) return; - geoip_client_history_cache_size -= clientmap_entry_size(ent); + geoip_decrement_client_history_cache_size(clientmap_entry_size(ent)); tor_free(ent->transport_name); tor_free(ent); @@ -610,7 +638,7 @@ geoip_note_client_seen(geoip_client_action_t action, ent->transport_name = tor_strdup(transport_name); ent->action = (int)action; HT_INSERT(clientmap, &client_history, ent); -geoip_client_history_cache_size += clientmap_entry_size(ent); +geoip_increment_client_history_cache_size(clientmap_entry_size(ent)); } if (now / 60 <= (int)MAX_LAST_SEEN_IN_MINUTES && now >= 0) ent->last_seen_in_minutes = (unsigned)(now/60); ___ 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 'ticket25122_029_02' into ticket24902_029_05
commit 475218c108ad84aa302f0daec013faab9ff778f2 Merge: 33d9889a2 e758d659a Author: David Goulet Date: Fri Feb 2 14:55:01 2018 -0500 Merge branch 'ticket25122_029_02' into ticket24902_029_05 changes/ticket25122 | 4 ++ src/or/geoip.c | 148 ++-- src/or/geoip.h | 2 + src/or/relay.c | 16 -- src/test/test.c | 18 +++ 5 files changed, 180 insertions(+), 8 deletions(-) diff --cc src/or/geoip.c index 4e4f6e639,76fca43f6..20dad5f15 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@@ -516,9 -574,7 +557,10 @@@ clientmap_entry_free(clientmap_entry_t if (!ent) return; + /* This entry is about to be freed so pass it to the DoS subsystem to see if + * any actions can be taken about it. */ + dos_geoip_entry_about_to_free(ent); + geoip_decrement_client_history_cache_size(clientmap_entry_size(ent)); tor_free(ent->transport_name); tor_free(ent); @@@ -573,13 -651,13 +640,9 @@@ geoip_note_client_seen(geoip_client_act safe_str_client(fmt_addr((addr))), transport_name ? transport_name : ""); - tor_addr_copy(&lookup.addr, addr); - lookup.action = (int)action; - lookup.transport_name = (char*) transport_name; - ent = HT_FIND(clientmap, &client_history, &lookup); - + ent = geoip_lookup_client(addr, transport_name, action); if (! ent) { - ent = tor_malloc_zero(sizeof(clientmap_entry_t)); - tor_addr_copy(&ent->addr, addr); - if (transport_name) - ent->transport_name = tor_strdup(transport_name); - ent->action = (int)action; + ent = clientmap_entry_new(action, addr, transport_name); HT_INSERT(clientmap, &client_history, ent); } if (now / 60 <= (int)MAX_LAST_SEEN_IN_MINUTES && now >= 0) @@@ -621,25 -699,81 +684,100 @@@ geoip_remove_old_clients(time_t cutoff &cutoff); } +/* Return a client entry object matching the given address, transport name and + * geoip action from the clientmap. NULL if not found. The transport_name can + * be NULL. */ +clientmap_entry_t * +geoip_lookup_client(const tor_addr_t *addr, const char *transport_name, +geoip_client_action_t action) +{ + clientmap_entry_t lookup; + + tor_assert(addr); + + /* We always look for a client connection with no transport. */ + tor_addr_copy(&lookup.addr, addr); + lookup.action = action; + lookup.transport_name = (char *) transport_name; + + return HT_FIND(clientmap, &client_history, &lookup); +} + + /* Cleanup client entries older than the cutoff. Used for the OOM. Return the + * number of bytes freed. If 0 is returned, nothing was freed. */ + static size_t + oom_clean_client_entries(time_t cutoff) + { + size_t bytes = 0; + clientmap_entry_t **ent, **ent_next; + + for (ent = HT_START(clientmap, &client_history); ent; ent = ent_next) { + clientmap_entry_t *entry = *ent; + if (entry->last_seen_in_minutes < (cutoff / 60)) { + ent_next = HT_NEXT_RMV(clientmap, &client_history, ent); + bytes += clientmap_entry_size(entry); + clientmap_entry_free(entry); + } else { + ent_next = HT_NEXT(clientmap, &client_history, ent); + } + } + return bytes; + } + + /* Below this minimum lifetime, the OOM won't cleanup any entries. */ + #define GEOIP_CLIENT_CACHE_OOM_MIN_CUTOFF (4 * 60 * 60) + /* The OOM moves the cutoff by that much every run. */ + #define GEOIP_CLIENT_CACHE_OOM_STEP (15 * 50) + + /* Cleanup the geoip client history cache called from the OOM handler. Return + * the amount of bytes removed. This can return a value below or above + * min_remove_bytes but will stop as oon as the min_remove_bytes has been + * reached. */ + size_t + geoip_client_cache_handle_oom(time_t now, size_t min_remove_bytes) + { + time_t k; + size_t bytes_removed = 0; + + /* Our OOM handler called with 0 bytes to remove is a code flow error. */ + tor_assert(min_remove_bytes != 0); + + /* Set k to the initial cutoff of an entry. We then going to move it by step +* to try to remove as much as we can. */ + k = WRITE_STATS_INTERVAL; + + do { + time_t cutoff; + + /* If k has reached the minimum lifetime, we have to stop else we might + * remove every single entries which would be pretty bad for the DoS + * mitigation subsystem if by just filling the geoip cache, it was enough + * to trigger the OOM and clean every single entries. */ + if (k <= GEOIP_CLIENT_CACHE_OOM_MIN_CUTOFF) { + break; + } + + cutoff = now - k; + bytes_removed += oom_clean_client_entries(cutoff); + k -= GEOIP_CLIENT_CACHE_OOM_STEP; + } while (bytes_removed < min_remove_bytes); + + return bytes_removed; + } + + /* Return the total size in bytes of the client history cache. */ + size_t + geoip_client_cache_total_allocation(void) + { + size_t bytes = 0; + clientmap_entry_t **ent; + + HT_FOREACH(ent, clientmap, &client_history) { +
[tor-commits] [tor/master] geoip: Hook the client history cache into the OOM handler
commit 51839f47650463f59bd2cc84da05d5bc535d699d Author: David Goulet Date: Fri Feb 2 10:15:28 2018 -0500 geoip: Hook the client history cache into the OOM handler If the cache is using 20% of our maximum allowed memory, clean 10% of it. Same behavior as the HS descriptor cache. Closes #25122 Signed-off-by: David Goulet --- changes/ticket25122 | 4 +++ src/or/geoip.c | 91 + src/or/geoip.h | 2 ++ src/or/relay.c | 16 -- src/test/test.c | 18 +++ 5 files changed, 128 insertions(+), 3 deletions(-) diff --git a/changes/ticket25122 b/changes/ticket25122 new file mode 100644 index 0..2921811b2 --- /dev/null +++ b/changes/ticket25122 @@ -0,0 +1,4 @@ + o Minor feature (geoip cache): +- Make our OOM handler aware of the geoip client history cache so it + doesn't fill up the memory which is especially important for IPv6 and + our DoS mitigation subsystem. Closes ticket 25122. diff --git a/src/or/geoip.c b/src/or/geoip.c index 00c055bbe..c5e8cdab9 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -72,6 +72,10 @@ static smartlist_t *geoip_ipv4_entries = NULL, *geoip_ipv6_entries = NULL; static char geoip_digest[DIGEST_LEN]; static char geoip6_digest[DIGEST_LEN]; +/* Total size in bytes of the geoip client history cache. Used by the OOM + * handler. */ +static size_t geoip_client_history_cache_size; + /** Return the index of the country's entry in the GeoIP * country list if it is a valid 2-letter country code, otherwise * return -1. */ @@ -526,6 +530,15 @@ HT_PROTOTYPE(clientmap, clientmap_entry_t, node, clientmap_entry_hash, HT_GENERATE2(clientmap, clientmap_entry_t, node, clientmap_entry_hash, clientmap_entries_eq, 0.6, tor_reallocarray_, tor_free_) +/** Return the size of a client map entry. */ +static inline size_t +clientmap_entry_size(const clientmap_entry_t *ent) +{ + tor_assert(ent); + return (sizeof(clientmap_entry_t) + + (ent->transport_name ? strlen(ent->transport_name) : 0)); +} + /** Free all storage held by ent. */ static void clientmap_entry_free(clientmap_entry_t *ent) @@ -533,6 +546,8 @@ clientmap_entry_free(clientmap_entry_t *ent) if (!ent) return; + geoip_client_history_cache_size -= clientmap_entry_size(ent); + tor_free(ent->transport_name); tor_free(ent); } @@ -595,6 +610,7 @@ geoip_note_client_seen(geoip_client_action_t action, ent->transport_name = tor_strdup(transport_name); ent->action = (int)action; HT_INSERT(clientmap, &client_history, ent); +geoip_client_history_cache_size += clientmap_entry_size(ent); } if (now / 60 <= (int)MAX_LAST_SEEN_IN_MINUTES && now >= 0) ent->last_seen_in_minutes = (unsigned)(now/60); @@ -635,6 +651,81 @@ geoip_remove_old_clients(time_t cutoff) &cutoff); } +/* Cleanup client entries older than the cutoff. Used for the OOM. Return the + * number of bytes freed. If 0 is returned, nothing was freed. */ +static size_t +oom_clean_client_entries(time_t cutoff) +{ + size_t bytes = 0; + clientmap_entry_t **ent, **ent_next; + + for (ent = HT_START(clientmap, &client_history); ent; ent = ent_next) { +clientmap_entry_t *entry = *ent; +if (entry->last_seen_in_minutes < (cutoff / 60)) { + ent_next = HT_NEXT_RMV(clientmap, &client_history, ent); + bytes += clientmap_entry_size(entry); + clientmap_entry_free(entry); +} else { + ent_next = HT_NEXT(clientmap, &client_history, ent); +} + } + return bytes; +} + +/* Below this minimum lifetime, the OOM won't cleanup any entries. */ +#define GEOIP_CLIENT_CACHE_OOM_MIN_CUTOFF (4 * 60 * 60) +/* The OOM moves the cutoff by that much every run. */ +#define GEOIP_CLIENT_CACHE_OOM_STEP (15 * 50) + +/* Cleanup the geoip client history cache called from the OOM handler. Return + * the amount of bytes removed. This can return a value below or above + * min_remove_bytes but will stop as oon as the min_remove_bytes has been + * reached. */ +size_t +geoip_client_cache_handle_oom(time_t now, size_t min_remove_bytes) +{ + time_t k; + size_t bytes_removed = 0; + + /* Our OOM handler called with 0 bytes to remove is a code flow error. */ + tor_assert(min_remove_bytes != 0); + + /* Set k to the initial cutoff of an entry. We then going to move it by step + * to try to remove as much as we can. */ + k = WRITE_STATS_INTERVAL; + + do { +time_t cutoff; + +/* If k has reached the minimum lifetime, we have to stop else we might + * remove every single entries which would be pretty bad for the DoS + * mitigation subsystem if by just filling the geoip cache, it was enough + * to trigger the OOM and clean every single entries. */ +if (k <= GEOIP_CLIENT_CACHE_OOM_MIN_CUTOFF) { + break; +} + +cutoff = now - k; +bytes_removed += oom_clean_client_entries(cutoff); +k -= GEOIP_CLIENT_CACHE_OOM_STEP;
[tor-commits] [tor/release-0.3.2] Merge branch 'bug25125_032_01_squashed' into maint-0.3.2
commit 4ceae7c6b9742ce6b14f8bed34725e44522e52f2 Merge: 77634795b 005e228f8 Author: Nick Mathewson Date: Fri Feb 2 12:03:48 2018 -0500 Merge branch 'bug25125_032_01_squashed' into maint-0.3.2 src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 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.2'
commit 9e48338a12fd1fef840dc49c702b4a628af67cc0 Merge: 0fd91772b 4ceae7c6b Author: Nick Mathewson Date: Fri Feb 2 12:03:54 2018 -0500 Merge branch 'maint-0.3.2' src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) ___ 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.2] Merge branch 'maint-0.3.2' into release-0.3.2
commit f5e37b2eb6b33185a30a2aadd513c7e4dfbc1379 Merge: 90716e3f9 4ceae7c6b Author: Nick Mathewson Date: Fri Feb 2 12:03:54 2018 -0500 Merge branch 'maint-0.3.2' into release-0.3.2 src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 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.2] Merge branch 'bug25125_032_01_squashed' into maint-0.3.2
commit 4ceae7c6b9742ce6b14f8bed34725e44522e52f2 Merge: 77634795b 005e228f8 Author: Nick Mathewson Date: Fri Feb 2 12:03:48 2018 -0500 Merge branch 'bug25125_032_01_squashed' into maint-0.3.2 src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) ___ 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.2] sched: When releasing a channel, do not BUG() if absent from the pending list
commit 005e228f80f0bd241d01c106f87e6bfe6dda6127 Author: David Goulet Date: Fri Feb 2 08:48:34 2018 -0500 sched: When releasing a channel, do not BUG() if absent from the pending list The current code flow makes it that we can release a channel in a PENDING state but not in the pending list. This happens while the channel is being processed in the scheduler loop. Fixes #25125 Signed-off-by: David Goulet --- src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/or/scheduler.c b/src/or/scheduler.c index 47141c538..1984084fe 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -628,17 +628,21 @@ scheduler_release_channel,(channel_t *chan)) return; } - if (chan->scheduler_state == SCHED_CHAN_PENDING) { -if (SCHED_BUG(smartlist_pos(channels_pending, chan) == -1, chan)) { - log_warn(LD_SCHED, "Scheduler asked to release channel %" PRIu64 " " - "but it wasn't in channels_pending", - chan->global_identifier); -} else { - smartlist_pqueue_remove(channels_pending, - scheduler_compare_channels, - offsetof(channel_t, sched_heap_idx), - chan); -} + /* Try to remove the channel from the pending list regardless of its + * scheduler state. We can release a channel in many places in the tor code + * so we can't rely on the channel state (PENDING) to remove it from the + * list. + * + * For instance, the channel can change state from OPEN to CLOSING while + * being handled in the scheduler loop leading to the channel being in + * PENDING state but not in the pending list. Furthermore, we release the + * channel when it changes state to close and a second time when we free it. + * Not ideal at all but for now that is the way it is. */ + if (chan->sched_heap_idx != -1) { +smartlist_pqueue_remove(channels_pending, +scheduler_compare_channels, +offsetof(channel_t, sched_heap_idx), +chan); } if (the_scheduler->on_channel_free) { diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c index 1f014c4f6..724a6b56b 100644 --- a/src/test/test_scheduler.c +++ b/src/test/test_scheduler.c @@ -502,6 +502,18 @@ perform_channel_state_tests(int KISTSchedRunInterval, int sched_type) scheduler_touch_channel(ch1); tt_assert(scheduler_compare_channels_mock_ctr > old_count); + /* Release the ch2 and then do it another time to make sure it doesn't blow + * up and we are still in a quiescent state. */ + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Cheat a bit so make the release more confused but also will tells us if + * the release did put the channel in the right state. */ + ch2->scheduler_state = SCHED_CHAN_PENDING; + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Close */ channel_mark_for_close(ch1); tt_int_op(ch1->state, OP_EQ, CHANNEL_STATE_CLOSING); ___ 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.2] sched: When releasing a channel, do not BUG() if absent from the pending list
commit 005e228f80f0bd241d01c106f87e6bfe6dda6127 Author: David Goulet Date: Fri Feb 2 08:48:34 2018 -0500 sched: When releasing a channel, do not BUG() if absent from the pending list The current code flow makes it that we can release a channel in a PENDING state but not in the pending list. This happens while the channel is being processed in the scheduler loop. Fixes #25125 Signed-off-by: David Goulet --- src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/or/scheduler.c b/src/or/scheduler.c index 47141c538..1984084fe 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -628,17 +628,21 @@ scheduler_release_channel,(channel_t *chan)) return; } - if (chan->scheduler_state == SCHED_CHAN_PENDING) { -if (SCHED_BUG(smartlist_pos(channels_pending, chan) == -1, chan)) { - log_warn(LD_SCHED, "Scheduler asked to release channel %" PRIu64 " " - "but it wasn't in channels_pending", - chan->global_identifier); -} else { - smartlist_pqueue_remove(channels_pending, - scheduler_compare_channels, - offsetof(channel_t, sched_heap_idx), - chan); -} + /* Try to remove the channel from the pending list regardless of its + * scheduler state. We can release a channel in many places in the tor code + * so we can't rely on the channel state (PENDING) to remove it from the + * list. + * + * For instance, the channel can change state from OPEN to CLOSING while + * being handled in the scheduler loop leading to the channel being in + * PENDING state but not in the pending list. Furthermore, we release the + * channel when it changes state to close and a second time when we free it. + * Not ideal at all but for now that is the way it is. */ + if (chan->sched_heap_idx != -1) { +smartlist_pqueue_remove(channels_pending, +scheduler_compare_channels, +offsetof(channel_t, sched_heap_idx), +chan); } if (the_scheduler->on_channel_free) { diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c index 1f014c4f6..724a6b56b 100644 --- a/src/test/test_scheduler.c +++ b/src/test/test_scheduler.c @@ -502,6 +502,18 @@ perform_channel_state_tests(int KISTSchedRunInterval, int sched_type) scheduler_touch_channel(ch1); tt_assert(scheduler_compare_channels_mock_ctr > old_count); + /* Release the ch2 and then do it another time to make sure it doesn't blow + * up and we are still in a quiescent state. */ + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Cheat a bit so make the release more confused but also will tells us if + * the release did put the channel in the right state. */ + ch2->scheduler_state = SCHED_CHAN_PENDING; + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Close */ channel_mark_for_close(ch1); tt_int_op(ch1->state, OP_EQ, CHANNEL_STATE_CLOSING); ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] sched: When releasing a channel, do not BUG() if absent from the pending list
commit 005e228f80f0bd241d01c106f87e6bfe6dda6127 Author: David Goulet Date: Fri Feb 2 08:48:34 2018 -0500 sched: When releasing a channel, do not BUG() if absent from the pending list The current code flow makes it that we can release a channel in a PENDING state but not in the pending list. This happens while the channel is being processed in the scheduler loop. Fixes #25125 Signed-off-by: David Goulet --- src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/or/scheduler.c b/src/or/scheduler.c index 47141c538..1984084fe 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -628,17 +628,21 @@ scheduler_release_channel,(channel_t *chan)) return; } - if (chan->scheduler_state == SCHED_CHAN_PENDING) { -if (SCHED_BUG(smartlist_pos(channels_pending, chan) == -1, chan)) { - log_warn(LD_SCHED, "Scheduler asked to release channel %" PRIu64 " " - "but it wasn't in channels_pending", - chan->global_identifier); -} else { - smartlist_pqueue_remove(channels_pending, - scheduler_compare_channels, - offsetof(channel_t, sched_heap_idx), - chan); -} + /* Try to remove the channel from the pending list regardless of its + * scheduler state. We can release a channel in many places in the tor code + * so we can't rely on the channel state (PENDING) to remove it from the + * list. + * + * For instance, the channel can change state from OPEN to CLOSING while + * being handled in the scheduler loop leading to the channel being in + * PENDING state but not in the pending list. Furthermore, we release the + * channel when it changes state to close and a second time when we free it. + * Not ideal at all but for now that is the way it is. */ + if (chan->sched_heap_idx != -1) { +smartlist_pqueue_remove(channels_pending, +scheduler_compare_channels, +offsetof(channel_t, sched_heap_idx), +chan); } if (the_scheduler->on_channel_free) { diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c index 1f014c4f6..724a6b56b 100644 --- a/src/test/test_scheduler.c +++ b/src/test/test_scheduler.c @@ -502,6 +502,18 @@ perform_channel_state_tests(int KISTSchedRunInterval, int sched_type) scheduler_touch_channel(ch1); tt_assert(scheduler_compare_channels_mock_ctr > old_count); + /* Release the ch2 and then do it another time to make sure it doesn't blow + * up and we are still in a quiescent state. */ + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Cheat a bit so make the release more confused but also will tells us if + * the release did put the channel in the right state. */ + ch2->scheduler_state = SCHED_CHAN_PENDING; + scheduler_release_channel(ch2); + tt_int_op(ch2->scheduler_state, OP_EQ, SCHED_CHAN_IDLE); + tt_int_op(smartlist_len(channels_pending), OP_EQ, 1); + /* Close */ channel_mark_for_close(ch1); tt_int_op(ch1->state, OP_EQ, CHANNEL_STATE_CLOSING); ___ 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 'bug25125_032_01_squashed' into maint-0.3.2
commit 4ceae7c6b9742ce6b14f8bed34725e44522e52f2 Merge: 77634795b 005e228f8 Author: Nick Mathewson Date: Fri Feb 2 12:03:48 2018 -0500 Merge branch 'bug25125_032_01_squashed' into maint-0.3.2 src/or/scheduler.c| 26 +++--- src/test/test_scheduler.c | 12 2 files changed, 27 insertions(+), 11 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [user-manual/alpha] Pushing es-ES screenshots
commit 8106cb034d5f349d202f51e201a37589fe98a336 Author: Colin Childs Date: Fri Feb 2 10:04:18 2018 -0600 Pushing es-ES screenshots --- es-ES/media/circumvention/bridges.png | Bin 117487 -> 223850 bytes es-ES/media/circumvention/configure.png | Bin 74740 -> 290268 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/es-ES/media/circumvention/bridges.png b/es-ES/media/circumvention/bridges.png index ce03eca..0b51401 100644 Binary files a/es-ES/media/circumvention/bridges.png and b/es-ES/media/circumvention/bridges.png differ diff --git a/es-ES/media/circumvention/configure.png b/es-ES/media/circumvention/configure.png index 33773e8..fc56ec6 100644 Binary files a/es-ES/media/circumvention/configure.png and b/es-ES/media/circumvention/configure.png differ ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [user-manual/alpha] Pushing de images
commit fa2f468d53f83387001e8ce97ad32c88c9cc083b Author: Colin Childs Date: Fri Feb 2 08:19:22 2018 -0600 Pushing de images --- de/media/circumvention/bridges.png | Bin 116636 -> 207233 bytes de/media/circumvention/configure.png | Bin 82220 -> 181646 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/de/media/circumvention/bridges.png b/de/media/circumvention/bridges.png index be471d9..34cf698 100644 Binary files a/de/media/circumvention/bridges.png and b/de/media/circumvention/bridges.png differ diff --git a/de/media/circumvention/configure.png b/de/media/circumvention/configure.png index 354490d..6a90c68 100644 Binary files a/de/media/circumvention/configure.png and b/de/media/circumvention/configure.png differ ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor-browser/tor-browser-52.6.0esr-8.0-2] Bug 13575: Disable randomised Firefox HTTP cache decay user tests.
commit f6d6512bf85d964fa5a470f2528042c527523a34 Author: Fernando Fernandez Mancera Date: Sat Jan 20 21:54:00 2018 +0100 Bug 13575: Disable randomised Firefox HTTP cache decay user tests. Mozilla's experiment shouldn't be collecting any data on our users. If "browser.cache.frecency_experiment" is not set in firefox.js to "-1" it will default to "0" and then it is randomised between "1" and "4" inclusive, setting different HTTP cache decay times for the four groups. --- browser/app/profile/000-tor-browser.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js index 1302d2e2d6be..ca27504e4b7d 100644 --- a/browser/app/profile/000-tor-browser.js +++ b/browser/app/profile/000-tor-browser.js @@ -179,6 +179,9 @@ pref("media.webspeech.synth.enabled", false); // Bug 10283: Disable SpeechSynthe pref("dom.webaudio.enabled", false); // Bug 13017: Disable Web Audio API pref("dom.maxHardwareConcurrency", 1); // Bug 21675: Spoof single-core cpu pref("dom.w3c_touch_events.enabled", 0); // Bug 10286: Always disable Touch API +// Disable randomised Firefox HTTP cache decay user test groups (Bug: 13575) +pref("browser.cache.frecency_experiment", -1); + // Third party stuff pref("privacy.firstparty.isolate", true); // Always enforce first party isolation ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor-browser-build/master] Fold in stable Changelog
commit e15653dc249011b6448e585d96e6f0aef3f1f262 Author: Georg Koppen Date: Fri Feb 2 08:17:35 2018 + Fold in stable Changelog --- .../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 51 ++ 1 file changed, 51 insertions(+) diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt index 5ee6e37..d591af5 100644 --- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt +++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt @@ -21,6 +21,57 @@ Tor Browser 8.0a1 -- January 23 2018 * Bug 23892: Include Firefox and Tor debug files in final build directory * Bug 24842: include libasan.so.2 and libubsan.so.0 in debug builds +Tor Browser 7.5 -- January 23 2018 + * All Platforms + * Update Firefox to 52.6.0esr + * Update Tor to 0.3.2.9 + * Update OpenSSL to 1.0.2n + * Update Torbutton to 1.9.8.5 + * Bug 21847: Update copy for security slider + * Bug 21245: Add da translation to Torbutton and keep track of it + * Bug 24702: Remove Mozilla text from banner + * Bug 10573: Replace deprecated nsILocalFile with nsIFile (code clean-up) + * Translations update + * Update Tor Launcher to 0.2.14.3 + * Bug 23262: Implement integrated progress bar + * Bug 23261: implement configuration portion of new Tor Launcher UI + * Bug 24623: Revise "country that censors Tor" text + * Bug 24624: tbb-logo.svg may cause network access + * Bug 23240: Retrieve current bootstrap progress before showing progress bar + * Bug 24428: Bootstrap error message sometimes lost + * Bug 22232: Add README on use of bootstrap status messages + * Bug 10573: Replace deprecated nsILocalFile with nsIFile (code clean-up) + * Translations update + * Update HTTPS Everywhere to 2018.1.11 + * Update NoScript to 5.1.8.3 + * Bug 23104: CSS line-height reveals the platform Tor Browser is running on + * Bug 24398: Plugin-container process exhausts memory + * Bug 22501: Requests via javascript: violate FPI + * Bug 24756: Add noisebridge01 obfs4 bridge configuration + * Windows + * Bug 16010: Enable content sandboxing on Windows + * Bug 23230: Fix build error on Windows 64 + * OS X + * Bug 24566: Avoid white flashes when opening dialogs in Tor Browser + * Bug 23025: Add some hardening flags to macOS build + * Linux + * Bug 23970: Make "Print to File" work with sandboxing enabled + * Bug 23016: "Print to File" is broken on some non-english Linux systems + * Bug 10089: Set middlemouse.contentLoadURL to false by default + * Bug 18101: Suppress upload file dialog proxy bypass (linux part) + * Android + * Bug 22084: Spoof network information API + * Build System + * All Platforms + * Switch from gitian/tor-browser-bundle to rbm/tor-browser-build + * Windows + * Bug 22563: Update mingw-w64 to fix W^X violations + * Bug 20929: Bump GCC version to 5.4.0 + * Linux + * Bug 20929: Bump GCC version to 5.4.0 + * Bug 23892: Include Firefox and Tor debug files in final build directory + * Bug 24842: include libasan.so.2 and libubsan.so.0 in debug builds + Tor Browser 7.5a10 -- December 19 2017 * All Platforms * Update Tor to 0.3.2.7-rc ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor-browser-build/maint-7.5] Bump rbm to latest master
commit e0641719c6f52109a25304dbe438e3139d6e14f1 Author: Georg Koppen Date: Fri Feb 2 07:22:04 2018 + Bump rbm to latest master --- rbm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rbm b/rbm index 5c89374..7494edc 16 --- a/rbm +++ b/rbm @@ -1 +1 @@ -Subproject commit 5c89374df7957238a9565c0b938ee3f30f880438 +Subproject commit 7494edc6d2556c511c213823a6549410ba75f73b ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [torbutton/master] Bug 25016: Remove 2017 donation banner
commit 1cf0f11380c6f9fddf2fef54966390801ba7a2b1 Author: Arthur Edelstein Date: Wed Jan 24 20:37:49 2018 -0800 Bug 25016: Remove 2017 donation banner The campaign is finished, so we can remove the banner. I'm leaving in the strings in case we want to use some of them next year. --- src/chrome/content/aboutTor/aboutTor-content.js | 5 -- src/chrome/content/aboutTor/aboutTor.xhtml | 19 +--- src/chrome/content/aboutTor/donation_banner.js | 105 -- src/chrome/content/aboutTor/onion-hand.png | Bin 69055 -> 0 bytes src/chrome/content/torbutton.js | 4 +- src/chrome/skin/donation_banner.css | 113 --- src/modules/donation-banner.js | 115 7 files changed, 2 insertions(+), 359 deletions(-) diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js index 95e8abd..ec515bb 100644 --- a/src/chrome/content/aboutTor/aboutTor-content.js +++ b/src/chrome/content/aboutTor/aboutTor-content.js @@ -105,11 +105,6 @@ var AboutTorListener = { else body.removeAttribute("showmanual"); -if (aData.bannerData) - body.setAttribute("banner-data", aData.bannerData); -else - body.removeAttribute("banner-data"); - // Setting body.initialized="yes" displays the body, which must be done // at this point because our remaining initialization depends on elements // being visible so that their size and position are accurate. diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml index 0fca4b9..7ae4b8b 100644 --- a/src/chrome/content/aboutTor/aboutTor.xhtml +++ b/src/chrome/content/aboutTor/aboutTor.xhtml @@ -21,8 +21,6 @@ &aboutTor.title; - - - - - - - - - - @@ -129,6 +112,6 @@ window.addEventListener("pageshow", function() { &aboutTor.footer.label; &aboutTor.learnMore.label; - + diff --git a/src/chrome/content/aboutTor/donation_banner.js b/src/chrome/content/aboutTor/donation_banner.js deleted file mode 100644 index 85f6af1..000 --- a/src/chrome/content/aboutTor/donation_banner.js +++ /dev/null @@ -1,105 +0,0 @@ -/* jshint esnext:true */ - -let sel = selector => document.querySelector(selector); - -// Shrink the font size if the text in the given element is overflowing. -let fitTextInElement = function (element) { - element.style.fontSize = "8px"; - let defaultWidth = element.scrollWidth, - defaultHeight = element.scrollHeight; - let bestSize; - for (let testSize = 8; testSize <= 40; testSize += 0.5) { -element.style.fontSize = `${testSize}px`; -if (element.scrollWidth <= defaultWidth && -element.scrollHeight <= defaultHeight) { - bestSize = testSize; -} else { - break; -} - } - element.style.fontSize = `${bestSize}px`; -}; - -// Increase padding at end to "squeeze" text, until just before -// it gets squeezed so much that it gets longer vertically. -let avoidWidows = function (element) { - element.style.paddingRight = "0px"; - let originalWidth = element.scrollWidth; - let originalHeight = element.scrollHeight; - let bestPadding; - for (let testPadding = 0; testPadding < originalWidth; testPadding += 0.5) { -element.style.paddingRight = `${testPadding}px`; -if (element.scrollHeight <= originalHeight) { - bestPadding = testPadding; -} else { - break; -} - } - element.style.paddingRight = `${bestPadding}px`; - if (window.getComputedStyle(element).direction === "rtl") { -element.style.paddingLeft = element.style.paddingRight; -element.style.paddingRight = "0px"; - } -}; - -// Resize the text inside banner to fit. -let updateTextSizes = function () { - fitTextInElement(sel("#banner-tagline")); - fitTextInElement(sel("#banner-slogan")); - fitTextInElement(sel("#banner-donate-button-inner")); - avoidWidows(sel("#banner-tagline span")); -}; - -// Returns a random integer x, such that 0 <= x < max -let randomInteger = max => Math.floor(max * Math.random()); - -// The main donation banner function. -let runDonationBanner = function ({ taglines, slogan, mozilla, donate, shortLocale }) { - try { -sel("#banner-tagline span").innerText = taglines[randomInteger(taglines.length)]; -sel("#banner-slogan span").innerText = slogan; -let donateButtonText = sel("#banner-donate-button-inner span"); -let rtl = window.getComputedStyle(donateButtonText).direction === "rtl"; -donateButtonText.innerHTML = donate + " " + (rtl ? "◀" : "▶"); -sel("#banner").style.display = "flex"; -sel("#banner-spacer").style.display = "block"; -addEven
[tor-commits] [torbutton/master] Merge remote-tracking branch 'arthur/25016'
commit f96a293d146d3dc54f8ecfaa1d3dfc669bf4198d Merge: f860499 1cf0f11 Author: Georg Koppen Date: Fri Feb 2 08:11:02 2018 + Merge remote-tracking branch 'arthur/25016' src/chrome/content/aboutTor/aboutTor-content.js | 5 -- src/chrome/content/aboutTor/aboutTor.xhtml | 19 +--- src/chrome/content/aboutTor/donation_banner.js | 105 -- src/chrome/content/aboutTor/onion-hand.png | Bin 69055 -> 0 bytes src/chrome/content/torbutton.js | 4 +- src/chrome/skin/donation_banner.css | 113 --- src/modules/donation-banner.js | 115 7 files changed, 2 insertions(+), 359 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits