[tor-commits] [tor/master] Update version to 0.3.4.6-rc-dev
commit de129e69ba1192f0c2ad46ac898df248944068eb Author: Nick Mathewson Date: Tue Aug 7 20:15:34 2018 -0400 Update version to 0.3.4.6-rc-dev --- configure.ac| 2 +- contrib/win32build/tor-mingw.nsi.in | 2 +- src/win32/orconfig.h| 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e8ceab511..ff54f41af 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl Copyright (c) 2007-2017, The Tor Project, Inc. dnl See LICENSE for licensing information AC_PREREQ([2.63]) -AC_INIT([tor],[0.3.4.6-rc]) +AC_INIT([tor],[0.3.4.6-rc-dev]) AC_CONFIG_SRCDIR([src/or/main.c]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/contrib/win32build/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in index 84ecb91f3..bbe5586e4 100644 --- a/contrib/win32build/tor-mingw.nsi.in +++ b/contrib/win32build/tor-mingw.nsi.in @@ -8,7 +8,7 @@ !include "LogicLib.nsh" !include "FileFunc.nsh" !insertmacro GetParameters -!define VERSION "0.3.4.6-rc" +!define VERSION "0.3.4.6-rc-dev" !define INSTALLER "tor-${VERSION}-win32.exe" !define WEBSITE "https://www.torproject.org/; !define LICENSE "LICENSE" diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index 81986fd1b..4b0522e47 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -218,7 +218,7 @@ #define USING_TWOS_COMPLEMENT /* Version number of package */ -#define VERSION "0.3.4.6-rc" +#define VERSION "0.3.4.6-rc-dev" ___ 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.4'
commit 837f11a5320872ff9ab3565c9e2ddc44f127e843 Merge: f53720219 de129e69b Author: Nick Mathewson Date: Tue Aug 7 20:15:50 2018 -0400 Merge branch 'maint-0.3.4' "ours" merge to avoid version bump. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] Forward-port the 0.3.4.6-rc changelog
commit f537202196355bb73bb17f18f4d2629298e379ef Author: Nick Mathewson Date: Tue Aug 7 20:09:35 2018 -0400 Forward-port the 0.3.4.6-rc changelog --- ChangeLog | 59 +++ 1 file changed, 59 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7988010c2..84a3f1045 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,62 @@ +Changes in version 0.3.4.6-rc - 2018-08-06 + Tor 0.3.4.6-rc fixes several small compilation, portability, and + correctness issues in previous versions of Tor. This version is a + release candidate: if no serious bugs are found, we expect that the + stable 0.3.4 release will be (almost) the same as this release. + + o Major bugfixes (event scheduler): +- When we enable a periodic event, schedule it in the event loop + rather than running it immediately. Previously, we would re-run + periodic events immediately in the middle of (for example) + changing our options, with unpredictable effects. Fixes bug 27003; + bugfix on 0.3.4.1-alpha. + + o Minor features (compilation): +- When building Tor, prefer to use Python 3 over Python 2, and more + recent (contemplated) versions over older ones. Closes + ticket 26372. + + o Minor features (geoip): +- Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2 + Country database. Closes ticket 26674. + + o Minor features (Rust, portability): +- Rust cross-compilation is now supported. Closes ticket 25895. + + o Minor bugfixes (compilation): +- Fix a compilation warning on some versions of GCC when building + code that calls routerinfo_get_my_routerinfo() twice, assuming + that the second call will succeed if the first one did. Fixes bug + 26269; bugfix on 0.2.8.2-alpha. + + o Minor bugfixes (controller): +- Report the port correctly when a port is configured to bind to + "auto". Fixes bug 26568; bugfix on 0.3.4.1-alpha. +- Parse the "HSADDRESS=" parameter in HSPOST commands properly. + Previously, it was misparsed and ignored. Fixes bug 26523; bugfix + on 0.3.3.1-alpha. Patch by "akwizgran". + + o Minor bugfixes (correctness, flow control): +- Upon receiving a stream-level SENDME cell, verify that our window + has not grown too large. Fixes bug 26214; bugfix on svn + r54 (pre-0.0.1) + + o Minor bugfixes (memory, correctness): +- Fix a number of small memory leaks identified by coverity. Fixes + bug 26467; bugfix on numerous Tor versions. + + o Minor bugfixes (portability): +- Avoid a compilation error in test_bwmgt.c on Solaris 10. Fixes bug + 26994; bugfix on 0.3.4.1-alpha. + + o Minor bugfixes (testing, compatibility): +- When running the ntor_ref.py and hs_ntor_ref.py tests, make sure + only to pass strings (rather than "bytes" objects) to the Python + subprocess module. Python 3 on Windows seems to require this. + Fixes bug 26535; bugfix on 0.2.5.5-alpha (for ntor_ref.py) and + 0.3.1.1-alpha (for hs_ntor_ref.py). + + Changes in version 0.3.4.5-rc - 2018-07-13 Tor 0.3.4.5-rc moves to a new bridge authority, meaning people running bridge relays should upgrade. ___ 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.4] Merge branch 'maint-0.3.4' into release-0.3.4
commit 3b533bda2625f7682ea0d4780b87860e06184dc2 Merge: 6045c26d8 de129e69b Author: Nick Mathewson Date: Tue Aug 7 20:16:02 2018 -0400 Merge branch 'maint-0.3.4' into release-0.3.4 configure.ac| 2 +- contrib/win32build/tor-mingw.nsi.in | 2 +- src/win32/orconfig.h| 2 +- 3 files changed, 3 insertions(+), 3 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.4] Update version to 0.3.4.6-rc-dev
commit de129e69ba1192f0c2ad46ac898df248944068eb Author: Nick Mathewson Date: Tue Aug 7 20:15:34 2018 -0400 Update version to 0.3.4.6-rc-dev --- configure.ac| 2 +- contrib/win32build/tor-mingw.nsi.in | 2 +- src/win32/orconfig.h| 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e8ceab511..ff54f41af 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl Copyright (c) 2007-2017, The Tor Project, Inc. dnl See LICENSE for licensing information AC_PREREQ([2.63]) -AC_INIT([tor],[0.3.4.6-rc]) +AC_INIT([tor],[0.3.4.6-rc-dev]) AC_CONFIG_SRCDIR([src/or/main.c]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/contrib/win32build/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in index 84ecb91f3..bbe5586e4 100644 --- a/contrib/win32build/tor-mingw.nsi.in +++ b/contrib/win32build/tor-mingw.nsi.in @@ -8,7 +8,7 @@ !include "LogicLib.nsh" !include "FileFunc.nsh" !insertmacro GetParameters -!define VERSION "0.3.4.6-rc" +!define VERSION "0.3.4.6-rc-dev" !define INSTALLER "tor-${VERSION}-win32.exe" !define WEBSITE "https://www.torproject.org/; !define LICENSE "LICENSE" diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index 81986fd1b..4b0522e47 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -218,7 +218,7 @@ #define USING_TWOS_COMPLEMENT /* Version number of package */ -#define VERSION "0.3.4.6-rc" +#define VERSION "0.3.4.6-rc-dev" ___ 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.4] Update version to 0.3.4.6-rc-dev
commit de129e69ba1192f0c2ad46ac898df248944068eb Author: Nick Mathewson Date: Tue Aug 7 20:15:34 2018 -0400 Update version to 0.3.4.6-rc-dev --- configure.ac| 2 +- contrib/win32build/tor-mingw.nsi.in | 2 +- src/win32/orconfig.h| 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e8ceab511..ff54f41af 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl Copyright (c) 2007-2017, The Tor Project, Inc. dnl See LICENSE for licensing information AC_PREREQ([2.63]) -AC_INIT([tor],[0.3.4.6-rc]) +AC_INIT([tor],[0.3.4.6-rc-dev]) AC_CONFIG_SRCDIR([src/or/main.c]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/contrib/win32build/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in index 84ecb91f3..bbe5586e4 100644 --- a/contrib/win32build/tor-mingw.nsi.in +++ b/contrib/win32build/tor-mingw.nsi.in @@ -8,7 +8,7 @@ !include "LogicLib.nsh" !include "FileFunc.nsh" !insertmacro GetParameters -!define VERSION "0.3.4.6-rc" +!define VERSION "0.3.4.6-rc-dev" !define INSTALLER "tor-${VERSION}-win32.exe" !define WEBSITE "https://www.torproject.org/; !define LICENSE "LICENSE" diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index 81986fd1b..4b0522e47 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -218,7 +218,7 @@ #define USING_TWOS_COMPLEMENT /* Version number of package */ -#define VERSION "0.3.4.6-rc" +#define VERSION "0.3.4.6-rc-dev" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [webwml/master] Unstable tor is now 0.3.4.6-rc
commit 56c95f5ebdab1b786b3f456d2d1d6189682ed892 Author: Nick Mathewson Date: Tue Aug 7 19:59:49 2018 -0400 Unstable tor is now 0.3.4.6-rc --- Makefile | 2 +- include/versions.wmi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index edcf4329..9dbd67f5 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ # website component, and set it to needs_review. export STABLETAG=tor-0.3.3.9 -export DEVTAG=tor-0.3.4.5-rc +export DEVTAG=tor-0.3.4.6-rc WMLBASE=. SUBDIRS=docs eff projects press about download getinvolved donate docs/torbutton diff --git a/include/versions.wmi b/include/versions.wmi index bb234cd5..ada5f1f5 100644 --- a/include/versions.wmi +++ b/include/versions.wmi @@ -1,5 +1,5 @@ 0.3.3.9 -0.3.4.5-rc +0.3.4.6-rc maint-7.5 ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [stem/master] ControlMessage equality and hashing
commit b48ce682ef1a5fc1d4237d106700ec929f49246b Author: Damian Johnson Date: Tue Aug 7 15:04:20 2018 -0700 ControlMessage equality and hashing Interesting! Previously I implemented comparability for a single event type but that's all. I'm surprised we've gone this long without needing it. Messages have only three things we need to account for in the hash... * The message content (ie. the bytes we got from tor). * The message class, if we've casted ourselves to something. * The arrived_at timestamp if this is an event. That's it. Everything else is derived from those. Changing hash_attr()'s parent argument back to a class because a boolean makes it pretty likely we'll hit an invinite loop. In this case we hit it because we had the following object hierarchy... ControlMessage <= has a hash method Event <= has a hash method BandwidthEvent <= our object type If our Event class' hash method calls super it will return the Event class, not ControlMessage, causing us to loop indefinitely. Changing hash_attr() so it takes an explicit reference for our parent instead. --- docs/change_log.rst | 1 + stem/__init__.py | 2 +- stem/directory.py | 4 ++-- stem/response/__init__.py | 17 +++--- stem/response/events.py | 43 ++- stem/util/__init__.py | 6 +++-- test/unit/response/control_message.py | 24 +++ 7 files changed, 58 insertions(+), 39 deletions(-) diff --git a/docs/change_log.rst b/docs/change_log.rst index 282a02c8..362e4e10 100644 --- a/docs/change_log.rst +++ b/docs/change_log.rst @@ -58,6 +58,7 @@ The following are only available within Stem's `git repository * Added the delivered_read, delivered_written, overhead_read, and overhead_written attributes to :class:`~stem.response.events.CircuitBandwidthEvent` (:spec:`fbb38ec`) * The *config* attribute of :class:`~stem.response.events.ConfChangedEvent` couldn't represent tor configuration options with multiple values. It has been replaced with new *changed* and *unset* attributes. * Replaced socket's :func:`~stem.socket.ControlPort.get_address`, :func:`~stem.socket.ControlPort.get_port`, and :func:`~stem.socket.ControlSocketFile.get_socket_path` with attributes + * :class:`~stem.response.ControlMessage` is now comparable and hashable * Removed 'raw' argument from :func:`~stem.socket.ControlSocket.send` * **Descriptors** diff --git a/stem/__init__.py b/stem/__init__.py index 6da73320..1679b0a0 100644 --- a/stem/__init__.py +++ b/stem/__init__.py @@ -601,7 +601,7 @@ class ORPort(Endpoint): def __hash__(self): if self._hash is None: - self._hash = stem.util._hash_attr(self, 'link_protocols', parent = True) + self._hash = stem.util._hash_attr(self, 'link_protocols', parent = Endpoint) return self._hash diff --git a/stem/directory.py b/stem/directory.py index 020ac696..5d243707 100644 --- a/stem/directory.py +++ b/stem/directory.py @@ -316,7 +316,7 @@ class Authority(Directory): def __hash__(self): if self._hash is None: - self._hash = stem.util._hash_attr(self, 'v3ident', 'is_bandwidth_authority', parent = True) + self._hash = stem.util._hash_attr(self, 'v3ident', 'is_bandwidth_authority', parent = Directory) return self._hash @@ -521,7 +521,7 @@ class Fallback(Directory): def __hash__(self): if self._hash is None: - self._hash = stem.util._hash_attr(self, 'has_extrainfo', 'header', parent = True) + self._hash = stem.util._hash_attr(self, 'has_extrainfo', 'header', parent = Directory) return self._hash diff --git a/stem/response/__init__.py b/stem/response/__init__.py index 327be819..54eb9c44 100644 --- a/stem/response/__init__.py +++ b/stem/response/__init__.py @@ -16,9 +16,7 @@ Parses replies from the control socket. |- from_str - provides a ControlMessage for the given string |- is_ok - response had a 250 status |- content - provides the parsed message content -|- raw_content - unparsed socket data -|- __str__ - content stripped of protocol formatting -+- __iter__ - ControlLine entries for the content of the message ++- raw_content - unparsed socket data ControlLine - String subclass with methods for parsing controller responses. |- remainder - provides the unparsed content @@ -36,6 +34,7 @@ import re import threading import stem.socket +import stem.util import stem.util.str_tools __all__ = [ @@ -129,6 +128,9 @@ class ControlMessage(object): Message from the control socket. This is iterable and can be stringified for individual message components stripped of protocol formatting. Messages are never empty. + + .. versionchanged:: 1.7.0 + Implemented equality and hashing. """ @staticmethod
[tor-commits] [translation/bridgedb] Update translations for bridgedb
commit 77704db1e7de946d557d747cd255ca6ab4c6154c Author: Translation commit bot Date: Tue Aug 7 15:45:10 2018 + Update translations for bridgedb --- ml/LC_MESSAGES/bridgedb.po | 23 --- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/ml/LC_MESSAGES/bridgedb.po b/ml/LC_MESSAGES/bridgedb.po index 81b9aa74e..64c28a9d3 100644 --- a/ml/LC_MESSAGES/bridgedb.po +++ b/ml/LC_MESSAGES/bridgedb.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the BridgeDB project. # # Translators: +# Christy K Kurian , 2018 # NITHIN S SABU , 2018 # Salman Faris , 2015 msgid "" @@ -10,8 +11,8 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2018-08-04 13:57+\n" -"Last-Translator: NITHIN S SABU \n" +"PO-Revision-Date: 2018-08-07 15:44+\n" +"Last-Translator: Christy K Kurian \n" "Language-Team: Malayalam (http://www.transifex.com/otf/torproject/language/ml/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -80,11 +81,11 @@ msgstr "നിà´àµà´à´³àµà´àµ à´àµà´¯àµ à´àµ¼ à´àµà´¡àµ à´²à´àµ msgid "" "This QRCode contains your bridge lines. Scan it with a QRCode reader to copy" " your bridge lines onto mobile and other devices." -msgstr "" +msgstr "à´àµ QR à´àµà´¡à´¿àµ½ നിà´àµà´à´³àµà´àµ à´¬àµà´°à´¿à´¡àµà´àµ à´²àµàµ» à´ à´à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ. നിà´àµà´à´³àµà´àµ à´®àµà´¬àµàµ½ à´«àµà´£à´¿à´²àµà´àµà´àµ മറàµà´±àµ à´à´ªà´à´°à´£à´àµà´à´³à´¿à´²àµà´àµà´àµ à´¬àµà´°à´¿à´¡àµà´àµ à´²àµàµ» à´àµà´ªàµà´ªà´¿ à´àµà´¯àµà´¯àµà´µà´¾àµ» à´à´¤àµ à´à´°àµ QR à´àµà´¡àµ à´±àµà´¡à´±à´¿à´¨àµà´±àµ സഹായതàµà´¤àµà´àµ à´¸àµà´à´¾àµ» à´àµà´¯àµà´¯àµà´." #: bridgedb/https/templates/bridges.html:131 msgid "There currently aren't any bridges available..." -msgstr "" +msgstr "തൽസമയഠà´à´°àµ à´¬àµà´°à´¿à´¡àµà´àµà´ à´²à´àµà´¯à´®à´²àµà´²." #: bridgedb/https/templates/bridges.html:132 #, python-format @@ -96,17 +97,17 @@ msgstr "" #: bridgedb/https/templates/index.html:11 #, python-format msgid "Step %s1%s" -msgstr "" +msgstr "à´¸àµà´±àµà´±àµà´ªàµ %s1%s" #: bridgedb/https/templates/index.html:13 #, python-format msgid "Download %s Tor Browser %s" -msgstr "" +msgstr "à´àµàµ¼ à´¬àµà´°àµà´¸àµ¼ %s à´¡àµàµºà´²àµà´¡àµ à´àµà´¯àµà´¯àµà´ %s" #: bridgedb/https/templates/index.html:25 #, python-format msgid "Step %s2%s" -msgstr "" +msgstr "à´¸àµà´±àµà´±àµà´ªàµ %s2%s" #: bridgedb/https/templates/index.html:27 #, python-format @@ -116,7 +117,7 @@ msgstr "" #: bridgedb/https/templates/index.html:36 #, python-format msgid "Step %s3%s" -msgstr "" +msgstr "à´¸àµà´±àµà´±àµà´ªàµ %s3%s" #: bridgedb/https/templates/index.html:38 #, python-format @@ -134,7 +135,7 @@ msgstr "" #: bridgedb/https/templates/options.html:51 msgid "Advanced Options" -msgstr "" +msgstr "à´àµà´àµà´¤àµ½ à´àµà´°à´®àµà´à´°à´£à´àµà´àµ¾ " #: bridgedb/https/templates/options.html:86 msgid "No" @@ -142,7 +143,7 @@ msgstr "à´µàµà´£àµà´" #: bridgedb/https/templates/options.html:87 msgid "none" -msgstr "" +msgstr "à´à´¨àµà´¨àµà´®à´¿à´²àµà´²" #. TRANSLATORS: Please make sure the '%s' surrounding single letters at the #. beginning of words are present in your final translation. Thanks! @@ -162,7 +163,7 @@ msgstr "" #: bridgedb/strings.py:43 msgid "[This is an automated message; please do not reply.]" -msgstr "" +msgstr "[à´à´¤àµ à´à´°àµ à´¸àµà´µà´¯à´ നിർമിത സനàµà´¦àµà´¶à´ à´à´àµà´¨àµà´¨àµ; ദയവായി à´à´¤à´¿à´¨àµ à´ªàµà´°à´¤à´¿à´à´°à´£à´ നൽà´à´¾à´¤à´¿à´°à´¿à´àµà´àµà´.]" #: bridgedb/strings.py:45 msgid "Here are your bridges:" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [depictor/master] Replace the usage of the is_bwauth stem attribute that is deprecated now
commit 339c90d2d20a41f2d98900d7e42e576e65c740b8 Author: Tom Ritter Date: Tue Aug 7 10:30:21 2018 -0500 Replace the usage of the is_bwauth stem attribute that is deprecated now --- data/consensus.cfg | 7 +++ utility.py | 8 +++- website.py | 23 +-- write_website.py | 5 - 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/data/consensus.cfg b/data/consensus.cfg index ca11041..41a4147 100644 --- a/data/consensus.cfg +++ b/data/consensus.cfg @@ -12,6 +12,13 @@ graph_logical_max 25000 # we highlight clockskew that is 20 seconds or greater clockskew_threshold 20 +# bwauths that should be graphed + +bwauths maatuska +bwauths faravahar +bwauths bastet +bwauths moria1 + # recognized tor consensus parameters known_params bwweightscale diff --git a/utility.py b/utility.py index 6b2ee54..c931c59 100755 --- a/utility.py +++ b/utility.py @@ -11,6 +11,11 @@ import stem.util.enum from stem.util.lru_cache import lru_cache +config = {'bwauths': []} +def set_config(c): + global config + config = c + @lru_cache() def get_dirauths(): #Remove any BridgeAuths @@ -18,7 +23,8 @@ def get_dirauths(): @lru_cache() def get_bwauths(): - return dict((k.lower(), v) for (k, v) in stem.descriptor.remote.get_authorities().items() if v.is_bandwidth_authority) + global config + return dict((k.lower(), v) for (k, v) in stem.descriptor.remote.get_authorities().items() if v.nickname.lower() in config['bwauths']) downloader = stem.descriptor.remote.DescriptorDownloader( timeout = 30, diff --git a/website.py b/website.py index 7baa0f8..0405099 100755 --- a/website.py +++ b/website.py @@ -18,7 +18,7 @@ from Crypto.PublicKey import RSA import stem.descriptor.remote -from utility import get_dirauths, get_bwauths, unix_time, FileMock +from utility import set_config, get_dirauths, get_bwauths, unix_time, FileMock class WebsiteWriter: consensus = None @@ -1680,6 +1680,18 @@ if __name__ == '__main__': """ import stem import pickle + CONFIG = stem.util.conf.config_dict('consensus', { +'known_params': [], +'bwauths': [], +'ignore_fallback_authorities': False, +'graph_logical_min': 125, +'graph_logical_max': 25000, +'clockskew_threshold': 0, +}) + config = stem.util.conf.get_config("consensus") + config.load(os.path.join(os.path.dirname(__file__), 'data', 'consensus.cfg')) + set_config(CONFIG) + w = WebsiteWriter() c = pickle.load(open('consensus.p', 'rb')) @@ -1690,15 +1702,6 @@ if __name__ == '__main__': w.set_fallback_dirs(f) - CONFIG = stem.util.conf.config_dict('consensus', { -'known_params': [], -'ignore_fallback_authorities': False, -'graph_logical_min': 125, -'graph_logical_max': 25000, -'clockskew_threshold': 0, -}) - config = stem.util.conf.get_config("consensus") - config.load(os.path.join(os.path.dirname(__file__), 'data', 'consensus.cfg')) w.set_config(CONFIG) w.write_website(os.path.join(os.path.dirname(__file__), 'out', \ diff --git a/write_website.py b/write_website.py index f79e2c3..538c10c 100755 --- a/write_website.py +++ b/write_website.py @@ -32,13 +32,14 @@ from graphs import GraphWriter # dir-source line: dir-source authority_name v3ident hostname ip DirPort OrPort # r line: r nickname base64(fingerprint + "=") -> python -c "x = ''; import sys; import base64; sys.stdout.write(''.join('{:02x}'.format(ord(c)) for c in base64.b64decode(x)))" +#Also make sure to define the list of bwauths in the consensus.cfg file + #stem.descriptor.remote.DIRECTORY_AUTHORITIES = { #'Faravahar': DirectoryAuthority( #nickname = 'Faravahar', #address = '154.35.175.225', #or_port = 443, #dir_port = 80, -#is_bandwidth_authority = True, #fingerprint = 'CF6D0AAFB385BE71B8E111FC5CFF4B47923733BC', #v3ident = 'EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97', # ), @@ -46,6 +47,7 @@ from graphs import GraphWriter CONFIG = stem.util.conf.config_dict('consensus', { 'known_params': [], + 'bwauths': [], 'ignore_fallback_authorities' : False, 'graph_logical_min' : 125, 'graph_logical_max' : 25000, @@ -56,6 +58,7 @@ def main(): # loads configuration data config = stem.util.conf.get_config("consensus") config.load(os.path.join(os.path.dirname(__file__), 'data', 'consensus.cfg')) + set_config(CONFIG)
[tor-commits] [metrics-web/master] Update news.json to version 284 of doc/MetricsTimeline.
commit 33921ae7e07ad5ac34e4a7ba40b626f3eddcc6a2 Author: Karsten Loesing Date: Tue Aug 7 14:37:48 2018 +0200 Update news.json to version 284 of doc/MetricsTimeline. --- src/main/resources/web/json/news.json | 25 + 1 file changed, 25 insertions(+) diff --git a/src/main/resources/web/json/news.json b/src/main/resources/web/json/news.json index f0440a6..03d7f6a 100644 --- a/src/main/resources/web/json/news.json +++ b/src/main/resources/web/json/news.json @@ -3291,6 +3291,31 @@ "target" : "https://metrics.torproject.org/userstats-bridge-country.html?start=2018-06-01=2018-09-01=all; } ] }, { + "start" : "2018-07-29", + "ongoing" : true, + "places" : [ "bd" ], + "short_description" : "Protests over road safety in Dhaka, Bangladesh", + "description" : "Protests over road safety in Dhaka, Bangladesh. Reports of mobile network throttling and blocking of Facebook.", + "links" : [ { +"label" : "New York Times article", +"target" : "https://www.nytimes.com/2018/08/05/world/asia/bangladesh-students-protests.html; + }, { +"label" : "Daily Star article on throttling", +"target" : "https://www.thedailystar.net/country/bangladesh-mobile-internet-speed-brought-down-across-for-24hrs-1615909; + } ] +}, { + "start" : "2018-08-04", + "end" : "2018-08-05", + "short_description" : "Collector was missing consensuses", + "description" : "Collector was missing consensuses. They were recovered via recent relay consensus diffs.", + "links" : [ { +"label" : "metrics-team thread", +"target" : "https://lists.torproject.org/pipermail/metrics-team/2018-August/000869.html; + }, { +"label" : "tor-relays thread", +"target" : "https://lists.torproject.org/pipermail/tor-relays/2018-August/015850.html; + } ] +}, { "start" : "2016-02-24", "places" : [ "tm" ], "protocols" : [ "" ], ___ 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.4] Last two changelog entries for 0.3.4.6-rc
commit 6045c26d8442913e936e640fcf165ebfcc9d4bf1 Author: Nick Mathewson Date: Tue Aug 7 08:09:06 2018 -0400 Last two changelog entries for 0.3.4.6-rc --- ChangeLog| 11 +++ changes/bug26994 | 3 --- changes/bug27003 | 6 -- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 41e39982b..84a3f1045 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,13 @@ Changes in version 0.3.4.6-rc - 2018-08-06 release candidate: if no serious bugs are found, we expect that the stable 0.3.4 release will be (almost) the same as this release. + o Major bugfixes (event scheduler): +- When we enable a periodic event, schedule it in the event loop + rather than running it immediately. Previously, we would re-run + periodic events immediately in the middle of (for example) + changing our options, with unpredictable effects. Fixes bug 27003; + bugfix on 0.3.4.1-alpha. + o Minor features (compilation): - When building Tor, prefer to use Python 3 over Python 2, and more recent (contemplated) versions over older ones. Closes @@ -38,6 +45,10 @@ Changes in version 0.3.4.6-rc - 2018-08-06 - Fix a number of small memory leaks identified by coverity. Fixes bug 26467; bugfix on numerous Tor versions. + o Minor bugfixes (portability): +- Avoid a compilation error in test_bwmgt.c on Solaris 10. Fixes bug + 26994; bugfix on 0.3.4.1-alpha. + o Minor bugfixes (testing, compatibility): - When running the ntor_ref.py and hs_ntor_ref.py tests, make sure only to pass strings (rather than "bytes" objects) to the Python diff --git a/changes/bug26994 b/changes/bug26994 deleted file mode 100644 index 664894a7f..0 --- a/changes/bug26994 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (portability): -- Avoid a compilation error in test_bwmgt.c on Solaris 10. - Fixes bug 26994; bugfix on 0.3.4.1-alpha. diff --git a/changes/bug27003 b/changes/bug27003 deleted file mode 100644 index 4f2045afc..0 --- a/changes/bug27003 +++ /dev/null @@ -1,6 +0,0 @@ - o Major bugfixes (event scheduler): -- When we enable a periodic event, schedule it in the event loop - rather than running it immediately. Previously, we would re-run - periodic events immediately in the middle of (for example) - changing our options, with unpredictable effects. Fixes bug - 27003; bugfix on 0.3.4.1-alpha. ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] These changes files are also merged in 0.3.4.6-rc: remove them.
commit 8410d3b0ad6b7132452d6979914b20697707ea85 Author: Nick Mathewson Date: Tue Aug 7 08:10:26 2018 -0400 These changes files are also merged in 0.3.4.6-rc: remove them. --- changes/bug26994 | 3 --- changes/bug27003 | 6 -- 2 files changed, 9 deletions(-) diff --git a/changes/bug26994 b/changes/bug26994 deleted file mode 100644 index 664894a7f..0 --- a/changes/bug26994 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes (portability): -- Avoid a compilation error in test_bwmgt.c on Solaris 10. - Fixes bug 26994; bugfix on 0.3.4.1-alpha. diff --git a/changes/bug27003 b/changes/bug27003 deleted file mode 100644 index 4f2045afc..0 --- a/changes/bug27003 +++ /dev/null @@ -1,6 +0,0 @@ - o Major bugfixes (event scheduler): -- When we enable a periodic event, schedule it in the event loop - rather than running it immediately. Previously, we would re-run - periodic events immediately in the middle of (for example) - changing our options, with unpredictable effects. Fixes bug - 27003; bugfix on 0.3.4.1-alpha. ___ 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.4] When enabling periodic events, schedule but don't run them immediately.
commit 176999fd955dea5916a560374db7d4efd3a1dad1 Author: Nick Mathewson Date: Thu Aug 2 10:03:24 2018 -0400 When enabling periodic events, schedule but don't run them immediately. When we fixed 25939 in f7633c1fcaefe72bf97c001bab9062132c919996, we introduced a call to rescan_periodic_events() from inside the onion service logic. But this meant that we could rescan the event list -- thereby running event callbacks! -- from inside the hidden service code. This could cause us to run some of our event callbacks from an inconsistent state, if we were in the middle of changing options. A related bug (#25761) prevented us from rescanning our periodic events as appropriate, but when we fixed THAT one, this bug reared its ugly head. The fix here is that "enabling" an event should cause us to run it from the event loop, but not immediately from the point where we enable it. Fixes bug 27003; bugfix on 0.3.4.1-alpha. --- changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/changes/bug27003 b/changes/bug27003 new file mode 100644 index 0..4f2045afc --- /dev/null +++ b/changes/bug27003 @@ -0,0 +1,6 @@ + o Major bugfixes (event scheduler): +- When we enable a periodic event, schedule it in the event loop + rather than running it immediately. Previously, we would re-run + periodic events immediately in the middle of (for example) + changing our options, with unpredictable effects. Fixes bug + 27003; bugfix on 0.3.4.1-alpha. diff --git a/src/or/periodic.c b/src/or/periodic.c index 92fa677f8..9470376d0 100644 --- a/src/or/periodic.c +++ b/src/or/periodic.c @@ -140,8 +140,8 @@ periodic_event_destroy(periodic_event_item_t *event) event->last_action_time = 0; } -/** Enable the given event which means the event is launched and then the - * event's enabled flag is set. This can be called for an event that is +/** Enable the given event by setting its "enabled" flag and scheduling it to + * run immediately in the event loop. This can be called for an event that is * already enabled. */ void periodic_event_enable(periodic_event_item_t *event) @@ -152,7 +152,9 @@ periodic_event_enable(periodic_event_item_t *event) return; } - periodic_event_launch(event); + tor_assert(event->ev); + event->enabled = 1; + mainloop_event_activate(event->ev); } /** Disable the given event which means the event is destroyed and then the @@ -169,4 +171,3 @@ periodic_event_disable(periodic_event_item_t *event) mainloop_event_cancel(event->ev); event->enabled = 0; } - diff --git a/src/test/test_periodic_event.c b/src/test/test_periodic_event.c index 34689b64f..f159c4f83 100644 --- a/src/test/test_periodic_event.c +++ b/src/test/test_periodic_event.c @@ -106,11 +106,11 @@ test_pe_launch(void *arg) periodic_event_item_t *item = _events[i]; if (item->roles & PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } else { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - tt_u64_op(item->last_action_time, OP_EQ, 0); } +// enabled or not, the event has not yet been run. +tt_u64_op(item->last_action_time, OP_EQ, 0); } /* Remove Client but become a Relay. */ @@ -127,12 +127,9 @@ test_pe_launch(void *arg) /* Only Client role should be disabled. */ if (item->roles == PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - /* Was previously enabled so they should never be to 0. */ - tt_u64_op(item->last_action_time, OP_NE, 0); } if (item->roles & PERIODIC_EVENT_ROLE_RELAY) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } /* Non Relay role should be disabled, except for Dirserver. */ if (!(item->roles & roles)) { @@ -330,4 +327,3 @@ struct testcase_t periodic_event_tests[] = { 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/release-0.3.4] Merge branch 'maint-0.3.4' into release-0.3.4
commit 258759547b305a76b3985177698425d51b5d2d03 Merge: 40deb99c5 882b2ad0a Author: Nick Mathewson Date: Tue Aug 7 08:05:56 2018 -0400 Merge branch 'maint-0.3.4' into release-0.3.4 changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 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.4] Merge branch 'bug27003_034_v2' into maint-0.3.4
commit 882b2ad0aa46702e8420ef0d4bd788daff6f3ffd Merge: a54e94878 176999fd9 Author: Nick Mathewson Date: Tue Aug 7 08:05:51 2018 -0400 Merge branch 'bug27003_034_v2' into maint-0.3.4 changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 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 'bug27003_034_v2' into maint-0.3.4
commit 882b2ad0aa46702e8420ef0d4bd788daff6f3ffd Merge: a54e94878 176999fd9 Author: Nick Mathewson Date: Tue Aug 7 08:05:51 2018 -0400 Merge branch 'bug27003_034_v2' into maint-0.3.4 changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 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.4] When enabling periodic events, schedule but don't run them immediately.
commit 176999fd955dea5916a560374db7d4efd3a1dad1 Author: Nick Mathewson Date: Thu Aug 2 10:03:24 2018 -0400 When enabling periodic events, schedule but don't run them immediately. When we fixed 25939 in f7633c1fcaefe72bf97c001bab9062132c919996, we introduced a call to rescan_periodic_events() from inside the onion service logic. But this meant that we could rescan the event list -- thereby running event callbacks! -- from inside the hidden service code. This could cause us to run some of our event callbacks from an inconsistent state, if we were in the middle of changing options. A related bug (#25761) prevented us from rescanning our periodic events as appropriate, but when we fixed THAT one, this bug reared its ugly head. The fix here is that "enabling" an event should cause us to run it from the event loop, but not immediately from the point where we enable it. Fixes bug 27003; bugfix on 0.3.4.1-alpha. --- changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/changes/bug27003 b/changes/bug27003 new file mode 100644 index 0..4f2045afc --- /dev/null +++ b/changes/bug27003 @@ -0,0 +1,6 @@ + o Major bugfixes (event scheduler): +- When we enable a periodic event, schedule it in the event loop + rather than running it immediately. Previously, we would re-run + periodic events immediately in the middle of (for example) + changing our options, with unpredictable effects. Fixes bug + 27003; bugfix on 0.3.4.1-alpha. diff --git a/src/or/periodic.c b/src/or/periodic.c index 92fa677f8..9470376d0 100644 --- a/src/or/periodic.c +++ b/src/or/periodic.c @@ -140,8 +140,8 @@ periodic_event_destroy(periodic_event_item_t *event) event->last_action_time = 0; } -/** Enable the given event which means the event is launched and then the - * event's enabled flag is set. This can be called for an event that is +/** Enable the given event by setting its "enabled" flag and scheduling it to + * run immediately in the event loop. This can be called for an event that is * already enabled. */ void periodic_event_enable(periodic_event_item_t *event) @@ -152,7 +152,9 @@ periodic_event_enable(periodic_event_item_t *event) return; } - periodic_event_launch(event); + tor_assert(event->ev); + event->enabled = 1; + mainloop_event_activate(event->ev); } /** Disable the given event which means the event is destroyed and then the @@ -169,4 +171,3 @@ periodic_event_disable(periodic_event_item_t *event) mainloop_event_cancel(event->ev); event->enabled = 0; } - diff --git a/src/test/test_periodic_event.c b/src/test/test_periodic_event.c index 34689b64f..f159c4f83 100644 --- a/src/test/test_periodic_event.c +++ b/src/test/test_periodic_event.c @@ -106,11 +106,11 @@ test_pe_launch(void *arg) periodic_event_item_t *item = _events[i]; if (item->roles & PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } else { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - tt_u64_op(item->last_action_time, OP_EQ, 0); } +// enabled or not, the event has not yet been run. +tt_u64_op(item->last_action_time, OP_EQ, 0); } /* Remove Client but become a Relay. */ @@ -127,12 +127,9 @@ test_pe_launch(void *arg) /* Only Client role should be disabled. */ if (item->roles == PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - /* Was previously enabled so they should never be to 0. */ - tt_u64_op(item->last_action_time, OP_NE, 0); } if (item->roles & PERIODIC_EVENT_ROLE_RELAY) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } /* Non Relay role should be disabled, except for Dirserver. */ if (!(item->roles & roles)) { @@ -330,4 +327,3 @@ struct testcase_t periodic_event_tests[] = { 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/release-0.3.4] Merge branch 'bug27003_034_v2' into maint-0.3.4
commit 882b2ad0aa46702e8420ef0d4bd788daff6f3ffd Merge: a54e94878 176999fd9 Author: Nick Mathewson Date: Tue Aug 7 08:05:51 2018 -0400 Merge branch 'bug27003_034_v2' into maint-0.3.4 changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [tor/master] When enabling periodic events, schedule but don't run them immediately.
commit 176999fd955dea5916a560374db7d4efd3a1dad1 Author: Nick Mathewson Date: Thu Aug 2 10:03:24 2018 -0400 When enabling periodic events, schedule but don't run them immediately. When we fixed 25939 in f7633c1fcaefe72bf97c001bab9062132c919996, we introduced a call to rescan_periodic_events() from inside the onion service logic. But this meant that we could rescan the event list -- thereby running event callbacks! -- from inside the hidden service code. This could cause us to run some of our event callbacks from an inconsistent state, if we were in the middle of changing options. A related bug (#25761) prevented us from rescanning our periodic events as appropriate, but when we fixed THAT one, this bug reared its ugly head. The fix here is that "enabling" an event should cause us to run it from the event loop, but not immediately from the point where we enable it. Fixes bug 27003; bugfix on 0.3.4.1-alpha. --- changes/bug27003 | 6 ++ src/or/periodic.c | 9 + src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/changes/bug27003 b/changes/bug27003 new file mode 100644 index 0..4f2045afc --- /dev/null +++ b/changes/bug27003 @@ -0,0 +1,6 @@ + o Major bugfixes (event scheduler): +- When we enable a periodic event, schedule it in the event loop + rather than running it immediately. Previously, we would re-run + periodic events immediately in the middle of (for example) + changing our options, with unpredictable effects. Fixes bug + 27003; bugfix on 0.3.4.1-alpha. diff --git a/src/or/periodic.c b/src/or/periodic.c index 92fa677f8..9470376d0 100644 --- a/src/or/periodic.c +++ b/src/or/periodic.c @@ -140,8 +140,8 @@ periodic_event_destroy(periodic_event_item_t *event) event->last_action_time = 0; } -/** Enable the given event which means the event is launched and then the - * event's enabled flag is set. This can be called for an event that is +/** Enable the given event by setting its "enabled" flag and scheduling it to + * run immediately in the event loop. This can be called for an event that is * already enabled. */ void periodic_event_enable(periodic_event_item_t *event) @@ -152,7 +152,9 @@ periodic_event_enable(periodic_event_item_t *event) return; } - periodic_event_launch(event); + tor_assert(event->ev); + event->enabled = 1; + mainloop_event_activate(event->ev); } /** Disable the given event which means the event is destroyed and then the @@ -169,4 +171,3 @@ periodic_event_disable(periodic_event_item_t *event) mainloop_event_cancel(event->ev); event->enabled = 0; } - diff --git a/src/test/test_periodic_event.c b/src/test/test_periodic_event.c index 34689b64f..f159c4f83 100644 --- a/src/test/test_periodic_event.c +++ b/src/test/test_periodic_event.c @@ -106,11 +106,11 @@ test_pe_launch(void *arg) periodic_event_item_t *item = _events[i]; if (item->roles & PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } else { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - tt_u64_op(item->last_action_time, OP_EQ, 0); } +// enabled or not, the event has not yet been run. +tt_u64_op(item->last_action_time, OP_EQ, 0); } /* Remove Client but become a Relay. */ @@ -127,12 +127,9 @@ test_pe_launch(void *arg) /* Only Client role should be disabled. */ if (item->roles == PERIODIC_EVENT_ROLE_CLIENT) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 0); - /* Was previously enabled so they should never be to 0. */ - tt_u64_op(item->last_action_time, OP_NE, 0); } if (item->roles & PERIODIC_EVENT_ROLE_RELAY) { tt_int_op(periodic_event_is_enabled(item), OP_EQ, 1); - tt_u64_op(item->last_action_time, OP_NE, 0); } /* Non Relay role should be disabled, except for Dirserver. */ if (!(item->roles & roles)) { @@ -330,4 +327,3 @@ struct testcase_t periodic_event_tests[] = { 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] Merge branch 'maint-0.3.4'
commit 5e86a2868319f8aa55d2858fdb4d83e6f9f69120 Merge: abf88af48 882b2ad0a Author: Nick Mathewson Date: Tue Aug 7 08:05:56 2018 -0400 Merge branch 'maint-0.3.4' changes/bug27003 | 6 ++ src/core/mainloop/periodic.c | 8 +--- src/test/test_periodic_event.c | 8 ++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --cc src/core/mainloop/periodic.c index c17c0c56d,0..df5317eb3 mode 100644,00..100644 --- a/src/core/mainloop/periodic.c +++ b/src/core/mainloop/periodic.c @@@ -1,172 -1,0 +1,174 @@@ +/* Copyright (c) 2015-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file periodic.c + * + * \brief Generic backend for handling periodic events. + * + * The events in this module are used by main.c to track items that need + * to fire once every N seconds, possibly picking a new interval each time + * that they fire. See periodic_events[] in main.c for examples. + */ + +#include "core/or/or.h" +#include "lib/evloop/compat_libevent.h" +#include "app/config/config.h" +#include "core/mainloop/main.h" +#include "core/mainloop/periodic.h" +#include "lib/evloop/compat_libevent.h" + +/** We disable any interval greater than this number of seconds, on the + * grounds that it is probably an absolute time mistakenly passed in as a + * relative time. + */ +static const int MAX_INTERVAL = 10 * 365 * 86400; + +/** Set the event event to run in next_interval seconds from + * now. */ +static void +periodic_event_set_interval(periodic_event_item_t *event, +time_t next_interval) +{ + tor_assert(next_interval < MAX_INTERVAL); + struct timeval tv; + tv.tv_sec = next_interval; + tv.tv_usec = 0; + mainloop_event_schedule(event->ev, ); +} + +/** Wraps dispatches for periodic events, data will be a pointer to the + * event that needs to be called */ +static void +periodic_event_dispatch(mainloop_event_t *ev, void *data) +{ + periodic_event_item_t *event = data; + tor_assert(ev == event->ev); + + if (BUG(!periodic_event_is_enabled(event))) { +return; + } + + time_t now = time(NULL); + update_current_time(now); + const or_options_t *options = get_options(); +// log_debug(LD_GENERAL, "Dispatching %s", event->name); + int r = event->fn(now, options); + int next_interval = 0; + + if (!periodic_event_is_enabled(event)) { +/* The event got disabled from inside its callback; no need to + * reschedule. */ +return; + } + + /* update the last run time if action was taken */ + if (r==0) { +log_err(LD_BUG, "Invalid return value for periodic event from %s.", + event->name); +tor_assert(r != 0); + } else if (r > 0) { +event->last_action_time = now; +/* If the event is meant to happen after ten years, that's likely + * a bug, and somebody gave an absolute time rather than an interval. + */ +tor_assert(r < MAX_INTERVAL); +next_interval = r; + } else { +/* no action was taken, it is likely a precondition failed, + * we should reschedule for next second incase the precondition + * passes then */ +next_interval = 1; + } + +// log_debug(LD_GENERAL, "Scheduling %s for %d seconds", event->name, +// next_interval); + struct timeval tv = { next_interval , 0 }; + mainloop_event_schedule(ev, ); +} + +/** Schedules event to run as soon as possible from now. */ +void +periodic_event_reschedule(periodic_event_item_t *event) +{ + /* Don't reschedule a disabled event. */ + if (periodic_event_is_enabled(event)) { +periodic_event_set_interval(event, 1); + } +} + +/** Initializes the libevent backend for a periodic event. */ +void +periodic_event_setup(periodic_event_item_t *event) +{ + if (event->ev) { /* Already setup? This is a bug */ +log_err(LD_BUG, "Initial dispatch should only be done once."); +tor_assert(0); + } + + event->ev = mainloop_event_new(periodic_event_dispatch, + event); + tor_assert(event->ev); +} + +/** Handles initial dispatch for periodic events. It should happen 1 second + * after the events are created to mimic behaviour before #3199's refactor */ +void +periodic_event_launch(periodic_event_item_t *event) +{ + if (! event->ev) { /* Not setup? This is a bug */ +log_err(LD_BUG, "periodic_event_launch without periodic_event_setup"); +tor_assert(0); + } + /* Event already enabled? This is a bug */ + if (periodic_event_is_enabled(event)) { +log_err(LD_BUG, "periodic_event_launch on an already enabled event"); +tor_assert(0); + } + + // Initial dispatch + event->enabled = 1; + periodic_event_dispatch(event->ev, event); +} + +/** Release all storage associated with event */ +void +periodic_event_destroy(periodic_event_item_t *event) +{ + if (!event) +return; + mainloop_event_free(event->ev); +
[tor-commits] [translation-tools/master] add tba-androidstrings.dtd to the translation bot
commit fb66fac110275a0af382856fb0918eef9ff58de7 Author: emma peel Date: Tue Aug 7 10:08:42 2018 + add tba-androidstrings.dtd to the translation bot --- config | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config b/config index ded0f14..4a42fc7 100644 --- a/config +++ b/config @@ -13,15 +13,13 @@ exoneratorproperties exoneratorproperties_completed https_everywhere https_everywhere_completed liveusb-creator liveusb-creator_completed mat-gui mat-gui_completed -tor-launcher-properties tor-launcher-properties_completed -tor-launcher-progress tor-launcher-progress_completed -tor-launcher-network-settings tor-launcher-network-settings_completed tails-misc tails-misc_completed tails-iuk tails-iuk_completed tails-perl5lib tails-perl5lib_completed tails-greeter-2 tails-greeter-2_completed tails-openpgp-applet tails-openpgp-applet_completed tails-onioncircuits tails-onioncircuits_completed tails-persistence-setup tails-persistence-setup_completed +tba-android_stringsdtd tba-android_stringsdtd_completed tor-and-https tor-and-https_completed tor_animation tor_animation_completed torbirdy torbirdy_completed @@ -34,6 +32,9 @@ torbutton-aboutdialogdtd torbutton-aboutdialogdtd_completed torbutton-abouttorproperties torbutton-abouttorproperties_completed torbutton-abouttbupdatedtd torbutton-abouttbupdatedtd_completed torcheck torcheck_completed +tor-launcher-properties tor-launcher-properties_completed +tor-launcher-progress tor-launcher-progress_completed +tor-launcher-network-settings tor-launcher-network-settings_completed whisperback whisperback_completed support-portal support-portal_completed" ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation-tools/master] order components
commit 92aaa75d1a9cb47cb2f72eb516133887ff5335cf Author: emma peel Date: Tue Aug 7 08:22:59 2018 + order components --- config | 44 +--- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/config b/config index 89ea432..ded0f14 100644 --- a/config +++ b/config @@ -7,28 +7,34 @@ TRANSLATION_REPO=/srv/translation.torproject.org/translations/ TX=/usr/bin/tx -PROJECTS="bridgedb bridgedb_completed -torcheck torcheck_completed whisperback -whisperback_completed https_everywhere https_everywhere_completed -liveusb-creator liveusb-creator_completed tails-persistence-setup -tails-persistence-setup_completed torbirdy torbirdy_completed mat-gui mat-gui_completed +PROJECTS="abouttor-homepage abouttor-homepage_completed +bridgedb bridgedb_completed +exoneratorproperties exoneratorproperties_completed +https_everywhere https_everywhere_completed +liveusb-creator liveusb-creator_completed +mat-gui mat-gui_completed tor-launcher-properties tor-launcher-properties_completed tor-launcher-progress tor-launcher-progress_completed 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-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 -torbutton-abouttorproperties_completed tails-openpgp-applet -tails-openpgp-applet_completed torbutton-abouttbupdatedtd -torbutton-abouttbupdatedtd_completed tails-onioncircuits tails-onioncircuits_completed -tails-greeter-2 tails-greeter-2_completed exoneratorproperties -exoneratorproperties_completed tor-browser-manual -tor-browser-manual_completed +tails-misc tails-misc_completed +tails-iuk tails-iuk_completed tails-perl5lib tails-perl5lib_completed +tails-greeter-2 tails-greeter-2_completed +tails-openpgp-applet tails-openpgp-applet_completed +tails-onioncircuits tails-onioncircuits_completed +tails-persistence-setup tails-persistence-setup_completed +tor-and-https tor-and-https_completed +tor_animation tor_animation_completed +torbirdy torbirdy_completed +tor-browser-manual tor-browser-manual_completed +torbutton-brandproperties torbutton-brandproperties_completed +torbutton-branddtd torbutton-branddtd_completed +torbutton-torbuttonproperties torbutton-torbuttonproperties_completed +torbutton-torbuttondtd torbutton-torbuttondtd_completed +torbutton-aboutdialogdtd torbutton-aboutdialogdtd_completed +torbutton-abouttorproperties torbutton-abouttorproperties_completed +torbutton-abouttbupdatedtd torbutton-abouttbupdatedtd_completed +torcheck torcheck_completed +whisperback whisperback_completed support-portal support-portal_completed" PIDFILE=/srv/translation.torproject.org/run/update_translations.pid ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation-tools/master] delete support files, merged in support-portal
commit c2b738fdb8b7c320292d66d91148ae8075dc8613 Author: emma peel Date: Tue Aug 7 08:15:17 2018 + delete support files, merged in support-portal --- config | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/config b/config index 91fedc7..89ea432 100644 --- a/config +++ b/config @@ -28,11 +28,8 @@ tails-openpgp-applet_completed torbutton-abouttbupdatedtd torbutton-abouttbupdatedtd_completed tails-onioncircuits tails-onioncircuits_completed tails-greeter-2 tails-greeter-2_completed exoneratorproperties exoneratorproperties_completed tor-browser-manual -tor-browser-manual_completed support-censorship support-censorship_completed -support-connecting support-connecting_completed support-faq support-faq_completed -support-gettor support-gettor_completed support-https support-https_completed -support-miscellaneous support-miscellaneous_completed support-tbb support-tbb_completed support-portal support-portal_completed -support-topics support-topics_completed support-tormobile support-tormobile_completed" +tor-browser-manual_completed +support-portal support-portal_completed" PIDFILE=/srv/translation.torproject.org/run/update_translations.pid ___ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits
[tor-commits] [translation/bridgedb] Update translations for bridgedb
commit 8344f42dbc4b7de75bbd01c1960c71bd5580e700 Author: Translation commit bot Date: Tue Aug 7 07:45:04 2018 + Update translations for bridgedb --- fa/LC_MESSAGES/bridgedb.po | 33 + 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/fa/LC_MESSAGES/bridgedb.po b/fa/LC_MESSAGES/bridgedb.po index ab76fa6c5..e676b1967 100644 --- a/fa/LC_MESSAGES/bridgedb.po +++ b/fa/LC_MESSAGES/bridgedb.po @@ -10,6 +10,7 @@ # Ehsan Ab , 2015 # NoProfile, 2014-2015 # johnholzer , 2014 +# Mehrad Rousta , 2018 # Mohammad Hossein , 2014 # perspolis , 2011 # Setareh , 2014 @@ -18,15 +19,15 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2018-04-12 18:54+\n" -"Last-Translator: Marzieh Behboodi \n" +"PO-Revision-Date: 2018-08-07 07:30+\n" +"Last-Translator: Mehrad Rousta \n" "Language-Team: Persian (http://www.transifex.com/otf/torproject/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANSLATORS: Please DO NOT translate the following words and/or phrases in #. any string (regardless of capitalization and/or punctuation): @@ -61,7 +62,7 @@ msgstr "ت٠اس" #: bridgedb/https/templates/bridges.html:35 msgid "Select All" -msgstr "اÙتخاب ÙÙ Ù" +msgstr "گزÛÙØ´ ÙÙ Ù" #: bridgedb/https/templates/bridges.html:40 msgid "Show QRCode" @@ -78,7 +79,7 @@ msgstr "QRCode Ø¨Ø±Ø§Û Ø®Ø·ÙØ· Ù¾Ù Ø®Ùد" #: bridgedb/https/templates/bridges.html:67 #: bridgedb/https/templates/bridges.html:125 msgid "Uh oh, spaghettios!" -msgstr "اÙ٠اÙÙØ Ú©Ùسر٠اسپاگتÛ!" +msgstr "آخ Ø¢Ø®Ø Ø§Ø´ØªØ¨Ø§Ù Ø´Ø¯!" #: bridgedb/https/templates/bridges.html:68 msgid "It seems there was an error getting your QRCode." @@ -92,7 +93,7 @@ msgstr "اÛÙ QRCode شا٠٠خطÙØ· Ù¾Ù Ø®Ùد. اسک٠آ٠را با Û #: bridgedb/https/templates/bridges.html:131 msgid "There currently aren't any bridges available..." -msgstr "در Øا٠Øاضر ÙÛÚ Ù¾Ù Û Ø¯Ø± دسترس ÙÛست" +msgstr "ÙÙ âاکÙÙÙ ÙÛÚ Ù¾ÙÛ Ø¯Ø± دسترس ÙÛست..." #: bridgedb/https/templates/bridges.html:132 #, python-format @@ -142,7 +143,7 @@ msgstr "%sÙ%sÙØ· بد٠ب٠٠٠پ٠Ùا را!" #: bridgedb/https/templates/options.html:51 msgid "Advanced Options" -msgstr "گزÛÙÙ ÙØ§Û Ù¾ÛشرÙتÙ" +msgstr "گزÛÙÙâÙØ§Û Ù¾ÛشرÙتÙ" #: bridgedb/https/templates/options.html:86 msgid "No" @@ -170,7 +171,7 @@ msgstr "%sد%sرÛاÙت Ù¾ÙâÙا" #: bridgedb/strings.py:43 msgid "[This is an automated message; please do not reply.]" -msgstr "[اÛÙ ÛÚ© Ù¾Ûا٠خÙدکار Ù Û Ø¨Ø§Ø´Ø¯Ø ÙØ·Ùا پاسخ ÙدÙÛد.]" +msgstr "[اÛÙ ÛÚ© Ù¾Ûا٠خÙدکار Ù ÛâØ¨Ø§Ø´Ø¯Ø ÙØ·Ùا پاسخ ÙدÙÛد.]" #: bridgedb/strings.py:45 msgid "Here are your bridges:" @@ -191,7 +192,7 @@ msgstr "دستÙرات: (ترکÛب دستÙرات Ø¨Ø±Ø§Û Ù Ø´Ø®Øµ کرد٠گ #. TRANSLATORS: Please DO NOT translate the word "BridgeDB". #: bridgedb/strings.py:53 msgid "Welcome to BridgeDB!" -msgstr "ب٠BridgeDB Ø®ÙØ´ آ٠دÛد!" +msgstr "ب٠BridgeDB Ø®ÙØ´âآ٠دÛد!" #. TRANSLATORS: Please DO NOT translate the words "transport" or "TYPE". #: bridgedb/strings.py:55 @@ -205,11 +206,11 @@ msgstr "سÙØ§Ù Ø %s!" #: bridgedb/strings.py:57 msgid "Hello, friend!" -msgstr "سÙا٠دÙست Ù Ù!" +msgstr "سÙا٠دÙست٠!" #: bridgedb/strings.py:58 bridgedb/https/templates/base.html:90 msgid "Public Keys" -msgstr "Public Key Ùا" +msgstr "Ú©ÙÛدÙØ§Û Ø¹Ù ÙÙ Û" #. TRANSLATORS: This string will end up saying something like: #. "This email was generated with rainbows, unicorns, and sparkles @@ -219,7 +220,7 @@ msgstr "Public Key Ùا" msgid "" "This email was generated with rainbows, unicorns, and sparkles\n" "for %s on %s at %s." -msgstr "اÛ٠اÛÙ Û٠با رÙÚ¯Û٠ک٠ا٠ÙØ§Ø Ø§Ø³Ø¨ ÙØ§Û ØªÚ©Ø´Ø§Ø® Ù Ø²Ø±Ù Ù Ø¨Ø±Ù Ø¨Ø±Ø§Û %s بر %s ٠در %s تÙÙÛد شد٠است." +msgstr "اÛ٠اÛÙ Û٠با رÙÚ¯ÛÙâک٠اÙâÙØ§Ø Ø§Ø³Ø¨âÙØ§Û ØªÚ©Ø´Ø§Ø® Ù Ø²Ø±Ù Ù Ø¨Ø±Ù Ø¨Ø±Ø§Û %s بر %s ٠در %s تÙÙÛد شد٠است." #. TRANSLATORS: Please DO NOT translate "BridgeDB". #. TRANSLATORS: Please DO NOT translate "Pluggable Transports". @@ -280,7 +281,7 @@ msgstr "ÛÚ© طرÛ٠دÛÚ¯Ø±Û Ú©Ù Ù ÛتÙاÙÛد Ù¾ÙÙا را بگÛØ±Û #: bridgedb/strings.py:115 msgid "My bridges don't work! I need help!" -msgstr "ب٠ک٠ک اØتÛاج دار٠! Ù¾Ù ÙØ§Û Ù Ù Ú©Ø§Ø± ÙÙ ÛâÚ©ÙÙد!" +msgstr "ب٠ک٠ک اØتÛاج
[tor-commits] [translation/bridgedb_completed] Update translations for bridgedb_completed
commit 8b6ed25fa649f2e543dab37dfc7d95cdbea4990d Author: Translation commit bot Date: Tue Aug 7 07:45:09 2018 + Update translations for bridgedb_completed --- fa/LC_MESSAGES/bridgedb.po | 33 + 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/fa/LC_MESSAGES/bridgedb.po b/fa/LC_MESSAGES/bridgedb.po index ab76fa6c5..e676b1967 100644 --- a/fa/LC_MESSAGES/bridgedb.po +++ b/fa/LC_MESSAGES/bridgedb.po @@ -10,6 +10,7 @@ # Ehsan Ab , 2015 # NoProfile, 2014-2015 # johnholzer , 2014 +# Mehrad Rousta , 2018 # Mohammad Hossein , 2014 # perspolis , 2011 # Setareh , 2014 @@ -18,15 +19,15 @@ msgstr "" "Project-Id-Version: The Tor Project\n" "Report-Msgid-Bugs-To: 'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n" "POT-Creation-Date: 2015-07-25 03:40+\n" -"PO-Revision-Date: 2018-04-12 18:54+\n" -"Last-Translator: Marzieh Behboodi \n" +"PO-Revision-Date: 2018-08-07 07:30+\n" +"Last-Translator: Mehrad Rousta \n" "Language-Team: Persian (http://www.transifex.com/otf/torproject/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANSLATORS: Please DO NOT translate the following words and/or phrases in #. any string (regardless of capitalization and/or punctuation): @@ -61,7 +62,7 @@ msgstr "ت٠اس" #: bridgedb/https/templates/bridges.html:35 msgid "Select All" -msgstr "اÙتخاب ÙÙ Ù" +msgstr "گزÛÙØ´ ÙÙ Ù" #: bridgedb/https/templates/bridges.html:40 msgid "Show QRCode" @@ -78,7 +79,7 @@ msgstr "QRCode Ø¨Ø±Ø§Û Ø®Ø·ÙØ· Ù¾Ù Ø®Ùد" #: bridgedb/https/templates/bridges.html:67 #: bridgedb/https/templates/bridges.html:125 msgid "Uh oh, spaghettios!" -msgstr "اÙ٠اÙÙØ Ú©Ùسر٠اسپاگتÛ!" +msgstr "آخ Ø¢Ø®Ø Ø§Ø´ØªØ¨Ø§Ù Ø´Ø¯!" #: bridgedb/https/templates/bridges.html:68 msgid "It seems there was an error getting your QRCode." @@ -92,7 +93,7 @@ msgstr "اÛÙ QRCode شا٠٠خطÙØ· Ù¾Ù Ø®Ùد. اسک٠آ٠را با Û #: bridgedb/https/templates/bridges.html:131 msgid "There currently aren't any bridges available..." -msgstr "در Øا٠Øاضر ÙÛÚ Ù¾Ù Û Ø¯Ø± دسترس ÙÛست" +msgstr "ÙÙ âاکÙÙÙ ÙÛÚ Ù¾ÙÛ Ø¯Ø± دسترس ÙÛست..." #: bridgedb/https/templates/bridges.html:132 #, python-format @@ -142,7 +143,7 @@ msgstr "%sÙ%sÙØ· بد٠ب٠٠٠پ٠Ùا را!" #: bridgedb/https/templates/options.html:51 msgid "Advanced Options" -msgstr "گزÛÙÙ ÙØ§Û Ù¾ÛشرÙتÙ" +msgstr "گزÛÙÙâÙØ§Û Ù¾ÛشرÙتÙ" #: bridgedb/https/templates/options.html:86 msgid "No" @@ -170,7 +171,7 @@ msgstr "%sد%sرÛاÙت Ù¾ÙâÙا" #: bridgedb/strings.py:43 msgid "[This is an automated message; please do not reply.]" -msgstr "[اÛÙ ÛÚ© Ù¾Ûا٠خÙدکار Ù Û Ø¨Ø§Ø´Ø¯Ø ÙØ·Ùا پاسخ ÙدÙÛد.]" +msgstr "[اÛÙ ÛÚ© Ù¾Ûا٠خÙدکار Ù ÛâØ¨Ø§Ø´Ø¯Ø ÙØ·Ùا پاسخ ÙدÙÛد.]" #: bridgedb/strings.py:45 msgid "Here are your bridges:" @@ -191,7 +192,7 @@ msgstr "دستÙرات: (ترکÛب دستÙرات Ø¨Ø±Ø§Û Ù Ø´Ø®Øµ کرد٠گ #. TRANSLATORS: Please DO NOT translate the word "BridgeDB". #: bridgedb/strings.py:53 msgid "Welcome to BridgeDB!" -msgstr "ب٠BridgeDB Ø®ÙØ´ آ٠دÛد!" +msgstr "ب٠BridgeDB Ø®ÙØ´âآ٠دÛد!" #. TRANSLATORS: Please DO NOT translate the words "transport" or "TYPE". #: bridgedb/strings.py:55 @@ -205,11 +206,11 @@ msgstr "سÙØ§Ù Ø %s!" #: bridgedb/strings.py:57 msgid "Hello, friend!" -msgstr "سÙا٠دÙست Ù Ù!" +msgstr "سÙا٠دÙست٠!" #: bridgedb/strings.py:58 bridgedb/https/templates/base.html:90 msgid "Public Keys" -msgstr "Public Key Ùا" +msgstr "Ú©ÙÛدÙØ§Û Ø¹Ù ÙÙ Û" #. TRANSLATORS: This string will end up saying something like: #. "This email was generated with rainbows, unicorns, and sparkles @@ -219,7 +220,7 @@ msgstr "Public Key Ùا" msgid "" "This email was generated with rainbows, unicorns, and sparkles\n" "for %s on %s at %s." -msgstr "اÛ٠اÛÙ Û٠با رÙÚ¯Û٠ک٠ا٠ÙØ§Ø Ø§Ø³Ø¨ ÙØ§Û ØªÚ©Ø´Ø§Ø® Ù Ø²Ø±Ù Ù Ø¨Ø±Ù Ø¨Ø±Ø§Û %s بر %s ٠در %s تÙÙÛد شد٠است." +msgstr "اÛ٠اÛÙ Û٠با رÙÚ¯ÛÙâک٠اÙâÙØ§Ø Ø§Ø³Ø¨âÙØ§Û ØªÚ©Ø´Ø§Ø® Ù Ø²Ø±Ù Ù Ø¨Ø±Ù Ø¨Ø±Ø§Û %s بر %s ٠در %s تÙÙÛد شد٠است." #. TRANSLATORS: Please DO NOT translate "BridgeDB". #. TRANSLATORS: Please DO NOT translate "Pluggable Transports". @@ -280,7 +281,7 @@ msgstr "ÛÚ© طرÛ٠دÛÚ¯Ø±Û Ú©Ù Ù ÛتÙاÙÛد Ù¾ÙÙا را بگÛØ±Û #: bridgedb/strings.py:115 msgid "My bridges don't work! I need help!" -msgstr "ب٠ک٠ک اØتÛاج دار٠! Ù¾Ù ÙØ§Û Ù Ù Ú©Ø§Ø± ÙÙ ÛâÚ©ÙÙد!" +msgstr "ب٠ک٠ک