[tor-commits] [webstats/master] symlink configuration files as expected by awstats

2016-03-21 Thread sebastian
commit 01cec3b9ac7839ebc5b3c8b944b515e5377b47f4
Author: Sebastian Hahn 
Date:   Fri Nov 20 10:02:45 2015 +0100

symlink configuration files as expected by awstats
---
 awstats-7.4/wwwroot/cgi-bin/awstats.dist.conf | 1 +
 awstats-7.4/wwwroot/cgi-bin/awstats.www.conf  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/awstats-7.4/wwwroot/cgi-bin/awstats.dist.conf 
b/awstats-7.4/wwwroot/cgi-bin/awstats.dist.conf
new file mode 12
index 000..65dad52
--- /dev/null
+++ b/awstats-7.4/wwwroot/cgi-bin/awstats.dist.conf
@@ -0,0 +1 @@
+../../../awstats.dist.conf
\ No newline at end of file
diff --git a/awstats-7.4/wwwroot/cgi-bin/awstats.www.conf 
b/awstats-7.4/wwwroot/cgi-bin/awstats.www.conf
new file mode 12
index 000..e4631eb
--- /dev/null
+++ b/awstats-7.4/wwwroot/cgi-bin/awstats.www.conf
@@ -0,0 +1 @@
+../../../awstats.www.conf
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [webstats/master] Throw away http lines

2016-03-21 Thread sebastian
commit 93c48ff3286c9db082973bdf4a7b10fc8edcc8ee
Author: Sebastian Hahn 
Date:   Wed Nov 18 16:31:30 2015 +0100

Throw away http lines
---
 src/sanitize.py   | 14 +-
 src/treat_new_logs.sh |  8 ++--
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/sanitize.py b/src/sanitize.py
index 0c5de19..d6baf41 100755
--- a/src/sanitize.py
+++ b/src/sanitize.py
@@ -6,7 +6,7 @@ The following sanitizing steps are performed on data read from 
stdin:
   2. Die if other hosts than '0.0.0.0' or '0.0.0.1' are specified.
   3. Discard all lines with other methods than GET.
   4. Die if a protocol other than HTTP is used.
-  5. Discard all lines with status code 404.
+  5. Discard all lines with status code 400 and 404.
   6. Override client with '-'.
   7. Override user with '-'.
   8. Override time with '00:00:00 +'.
@@ -46,7 +46,7 @@ if matched is None:
 sys.exit(1)
 today = dateutil.parser.parse(matched.group(1))
 
-is_valid_regex = re.compile(r'^0\.0\.0\.([01]) - - 
\[(\d{2}/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/\d{4}):00:00:00 
\+\] "([^ ]*) ([^ ?]*[?]?|)[^ ]* HTTP([^"]*)" (-|\d*) (-|\d*) 
"([^\"]|\\|\")*" "([^"]|\")*" .*[^ ]$')
+is_valid_regex = re.compile(r'^0\.0\.0\.([01]) - - 
\[(\d{2}/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/\d{4}):00:00:00 
\+\] "([^ ]*) ([^ ?]*[?]?|).* HTTP([^"]*)" (-|\d*) (-|\d*) "([^\"]|\\|\")*" 
"([^"]|\")*" .*[^ ]$')
 sanitized_regex = r'0.0.0.\1 - - [\2:00:00:00 +] "\4 \5 HTTP\6" \7 \8 "-" 
"-" -\n'
 day_before = today - datetime.timedelta(days=1)
 
@@ -59,18 +59,22 @@ with open(yesterday_fname, 'a') as file_old:
 matched = is_valid_regex.match(line)
 if matched is None:
 print(line, "Last line does not match critera", 
file=sys.stderr)
-sys.exit(1)
+continue
 date = dateutil.parser.parse(matched.group(2))
 if today != date and day_before != date:
 print(line, "Last line does not match date constraints. 
today:", today,
 " day before:", day_before, " date:", date, 
file=sys.stderr)
-sys.exit(1)
+continue
 requesttype = matched.group(4)
 if requesttype != "GET" and requesttype != "HEAD":
 #print(matched.expand(sanitized_regex), file=sys.stderr, 
end="")
 continue
 
-if matched.group(7) == "404":
+if matched.group(7) == "404" or matched.group(7) == "400":
+#print(matched.expand(sanitized_regex), file=sys.stderr, 
end="")
+continue
+
+if matched.group(1) == "0":
 #print(matched.expand(sanitized_regex), file=sys.stderr, 
end="")
 continue
 
diff --git a/src/treat_new_logs.sh b/src/treat_new_logs.sh
index 147ebec..144eec3 100755
--- a/src/treat_new_logs.sh
+++ b/src/treat_new_logs.sh
@@ -8,6 +8,8 @@ SCRIPTDIR="${BASEDIR}/bin/"
 
 BASEINCOMINGDIR="${BASEDIR}/incoming/"
 
+INTERESTING_HOSTS="www.torproject.org dist.torproject.org"
+
 cd "${BASEINCOMINGDIR}"
 for host in *; do
 INCOMINGDIR="${BASEINCOMINGDIR}/${host}/"
@@ -30,12 +32,12 @@ for host in *; do
 cp "${INCOMINGDIR}/${file}" "${WORKDIR}/${file}"
 cd "${WORKDIR}"
 gunzip ${file}
-COMPLETED=$(${SCRIPTDIR}/sanitize.py "${basefile}" "${WORKDIR}")
+COMPLETED=$(${SCRIPTDIR}/sanitize.py "${basefile}" "${WORKDIR}" 
2>>"${WORKDIR}/errors")
 COMPLETED_BASE=$(basename $COMPLETED)
 COMPLETED_BASE=${COMPLETED_BASE%_sanitized}
 sort "${COMPLETED}" > "${COMPLETED}_sorted"
 xz -ck9e "${COMPLETED}_sorted" > "${OUTDIR}/${COMPLETED_BASE}.xz"
-mv "${COMPLETED}_sorted" "${WORKDIR_AWSTATS}"
+mv "${OUTDIR}/${COMPLETED_BASE}.xz" "${WORKDIR_AWSTATS}"
 
 rm "${WORKDIR}/${basefile}"
 rm "${WORKDIR}/${COMPLETED_BASE}_sanitized"
@@ -43,3 +45,5 @@ for host in *; do
 done
 done
 
+# Now that we have all output files, process them with awstats
+



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [webstats/master] Start script to extract logs

2016-03-21 Thread sebastian
commit edddf0983d668ecd8c27700a83cb7e4d64255c07
Author: Sebastian Hahn 
Date:   Fri Nov 13 06:41:57 2015 +0100

Start script to extract logs
---
 bin/receive-log.sh|  47 ---
 bin/send-logs.sh  |  73 -
 build.xml |  36 --
 src/org/torproject/webstats/Main.java | 595 --
 src/sanitize.py   |  82 +
 src/treat_new_logs.sh |  45 +++
 6 files changed, 127 insertions(+), 751 deletions(-)

diff --git a/bin/receive-log.sh b/bin/receive-log.sh
deleted file mode 100755
index 6f98eaa..000
--- a/bin/receive-log.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-
-# Copyright 2011 The Tor Project
-# See LICENSE for licensing information
-#
-# Read a binary file from stdin and store it to disk.
-
-set -e
-set -u
-
-# Read remote host name from local command-line argument.
-rhost="$1"
-if [ -z "$rhost" ]; then
-  echo "Missing or illegal host name in authorized_keys."
-  exit 1
-fi
-
-# Read remote log file name from SSH command-line arguments.
-rfile="${SSH_ORIGINAL_COMMAND:-}"
-if ! [[ "$rfile" =~ ^[a-zA-Z0-9.-]+$ ]]; then
-  echo "Missing or illegal file name in SSH command."
-  exit 1
-fi
-
-# Create directories for this remote host if it doesn't exist.
-ldir="in/$rhost"
-if ! [ -d "in" ]; then
-  mkdir "in"
-fi
-if ! [ -d "$ldir" ]; then
-  mkdir "$ldir"
-fi
-
-# Make sure the file doesn't exist yet.
-lfile="$ldir/$rfile"
-if [[ -f "$lfile" ]]; then
-  echo "File already exists."
-  exit 1
-fi
-
-# Write file from stdin to temporary file.
-tfile="$ldir/.$rfile"
-cat > "$tfile"
-
-# Move file from temp/ to in/ directory.
-mv "$tfile" "$lfile"
-
diff --git a/bin/send-logs.sh b/bin/send-logs.sh
deleted file mode 100755
index 77e7442..000
--- a/bin/send-logs.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-# Copyright 2011 The Tor Project
-# See LICENSE for licensing information
-#
-# Send new gzip'ed Apache web log files via ssh to a remote server.
-
-set -e
-set -u
-
-usage() {
-  echo "Usage: $0 logs-dir ssh-string state-dir"
-  exit 1
-}
-
-# Check command-line arguments.
-if [ "$#" != 3 ]; then
-  usage
-fi
-ldir="$1"
-sshstring="$2"
-tdir="$3"
-if ! [ -d "$ldir" ]; then
-  echo "Directory '$1' does not exist."
-  usage
-fi
-
-# Create the local state directory that has empty files for every log file
-# that we sent to the remote server.
-if ! [ -d "$tdir" ]; then
-  mkdir "$tdir"
-fi
-
-# Iterate over files with file names containing access.log and ending in
-# .gz and send the ones we haven't sent before to the remote server.
-for i in $(find "$ldir" -maxdepth 1 -type f -name '*access.log*.gz'); do
-
-  # Check that the file exists.  This works around issues like filenames
-  # containing spaces.
-  if ! [ -e $i ]; then
-echo "File '$i' does not exist."
-continue
-  fi
-
-  # Extract the file name part to pass it as SSH parameter.
-  fname="$(basename $i)"
-
-  # Warn if file names contain illegal characters that the receiver would
-  # not accept.
-  if ! [[ $fname =~ ^[a-zA-Z0-9.-]+$ ]]; then
-echo "Illegal file name '$fname'."
-continue
-  fi
-
-  # Copy the file content to the remote server if we haven't sent it
-  # before.
-  tfile="$tdir/$fname"
-  if ! [ -f "$tfile" ]; then
-ssh -o PreferredAuthentications=publickey $sshstring "$fname" < "$i"
-  fi
-
-  # Add a state file to note that we don't attempt to send this file in
-  # the next execution.
-  touch "$tfile"
-
-done
-
-# Delete all state files for which there are no log files anymore.
-for i in $(find "$tdir" -type f); do
-  fname="$(basename $i)"
-  [ -e "$ldir/$fname" ] || rm -f "$tdir/$fname"
-done
-
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 7f0b430..000
--- a/build.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-  
-  
-  
-  
-
-
-  
-  
-
-  
-  
-
-  
-
-  
-
-  
-  
-
-  
-
-  
-
-
diff --git a/src/org/torproject/webstats/Main.java 
b/src/org/torproject/webstats/Main.java
deleted file mode 100644
index 378093e..000
--- a/src/org/torproject/webstats/Main.java
+++ /dev/null
@@ -1,595 +0,0 @@
-package org.torproject.webstats;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-import java.util.regex.*;
-
-import org.apache.commons.compress.compressors.gzip.*;
-
-/*
- * Sanitize Apache web logs by removing all potentially sensitive parts.
- *
- * The following sanitizing steps are performed on input web logs:
- *   1. Discard all lines that are not in the Combined Log Format.
- *   2. Discard all lines with other hosts than '0.0.0.0' or '0.0.0.1'.
- *   3. Discard all lines with other methods than GET.
- *   4. Discard all lines with other protocols than HTTP.
- *   5. Discard all lines with status code 404.
- *   6. Override client with '-'.
- *   7. Override user with '-'.
- *   8. Override time with '00:00:00 +'.
- *   9. Override referer (sic!) with '"-"'.
- *  

[tor-commits] [webstats/master] Clean up after ourselves

2016-03-21 Thread sebastian
commit 8d44ab0e0c47705eaaa3aab1c16d2bd1ec3f99b0
Author: Sebastian Hahn 
Date:   Wed Nov 18 17:21:56 2015 +0100

Clean up after ourselves
---
 src/treat_new_logs.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/treat_new_logs.sh b/src/treat_new_logs.sh
index 144eec3..d4d529f 100755
--- a/src/treat_new_logs.sh
+++ b/src/treat_new_logs.sh
@@ -37,9 +37,10 @@ for host in *; do
 COMPLETED_BASE=${COMPLETED_BASE%_sanitized}
 sort "${COMPLETED}" > "${COMPLETED}_sorted"
 xz -ck9e "${COMPLETED}_sorted" > "${OUTDIR}/${COMPLETED_BASE}.xz"
-mv "${OUTDIR}/${COMPLETED_BASE}.xz" "${WORKDIR_AWSTATS}"
+cp "${OUTDIR}/${COMPLETED_BASE}.xz" "${WORKDIR_AWSTATS}"
 
 rm "${WORKDIR}/${basefile}"
+rm "${COMPLETED}_sorted"
 rm "${WORKDIR}/${COMPLETED_BASE}_sanitized"
 touch "${STAMPDIR}/${file}_treated"
 done



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [webstats/master] Update gitignore

2016-03-21 Thread sebastian
commit e8aab75122e69a67423e47a5b833609e75544fca
Author: Sebastian Hahn 
Date:   Fri Nov 13 06:43:27 2015 +0100

Update gitignore
---
 .gitignore | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/.gitignore b/.gitignore
index 2dbd22e..b69ffdb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,5 @@
-lib/
-classes/
-in/
-out/
-temp/
-hist
-
+incoming
+out
+stamp
+work
+work_awstats



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [webstats/master] Remove two more old scripts

2016-03-21 Thread sebastian
commit b92dfd821066eac44620cda4004cf4298e2cb1d6
Author: Sebastian Hahn 
Date:   Fri Nov 13 06:44:02 2015 +0100

Remove two more old scripts
---
 logarchive.sh | 74 ---
 logimport.sh  | 47 -
 2 files changed, 121 deletions(-)

diff --git a/logarchive.sh b/logarchive.sh
deleted file mode 100644
index bab17b5..000
--- a/logarchive.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-#
-# Define a few variables
-logs="/srv/webstats.torproject.org/home/webstats/out"
-archive="/srv/webstats.torproject.org/archive"
-log_archive="/srv/webstats.torproject.org/archive/weblogs"
-data_archive="/srv/webstats.torproject.org/archive/data"
-data_publish="/srv/webstats.torproject.org/htdocs/data"
-record="/srv/webstats.torproject.org/logarchive.log"
-
-# Define the hosts we have logs for
-hosts=(
-metrics.torproject.org-access.log
-)
-
-# See if we actually have logs to process
-if [ ! "$(ls -A $logs)" ];
-then
-echo "`date` - No logs to process" >> $record
-exit 1
-fi
-
-# rsync ALL the logs so that we can delete them from the out/ directory
-# later
-rsync -ar "$logs/" "$log_archive/"
-
-for host in "${hosts[@]}"
-do
-year=`find "$log_archive/" -name $host | cut -d / -f 6 | sort | uniq`
-
-for y in $year; do
-month=`find "$log_archive/$y/" -name $host | cut -d / -f 7 | sort | 
uniq`
-cd "$archive/"
-
-for m in $month; do
-all_the_logs=`find "weblogs/$y/$m" -name $host`
-for i in $all_the_logs; do
-# If we already have a tarball, check to see if the file is 
already a
-# part of it
-if [ -e "$data_archive/$host-$y-$m.tar" ]
-then
-# See if the file is already a part of the tarball
-tar --list --file="$data_archive/$host-$y-$m.tar" $i
-check_exists=`echo $?`
-if [[ $check_exists -eq "1" ]]
-then
-tar --append --file="$host-$y-$m.tar" $i
-fi
-else
-tar --append --file="$host-$y-$m.tar" $i
-fi
-done
-
-# If we did create a new tarball, move it
-if [ -e "$host-$y-$m.tar" ]
-then
-mv "$host-$y-$m.tar" "$data_archive"
-fi
-
-# Pack up the tarball and make it available online
-cd "$data_archive"
-bzip2 -kf1 "$host-$y-$m.tar"
-mv "$host-$y-$m.tar.bz2" "$data_publish"
-
-done
-
-# And remove logs from the out/ directory
-rm -rf "$logs/$y/"
-
-done
-
-# And report back
-echo "`date` - Logs processed for $host" >> $record
-done
diff --git a/logimport.sh b/logimport.sh
deleted file mode 100644
index 438e3dd..000
--- a/logimport.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-#
-# The sanitized logs are in /srv/webstats.torproject.org/home/webstats/out/,
-# with the following format: year/month/day/$virtualhost-access.log
-#
-# Need to concat the logs in chronological order and import into
-# awstats and webalizer.
-
-# Define a few variables
-logtmp="/srv/webstats.torproject.org/logtmp"
-logs="/srv/webstats.torproject.org/home/webstats/out"
-record="/srv/webstats.torproject.org/logimport.log"
-
-# Define the hosts we have logs for
-hosts=(
-metrics
-)
-
-# See if we actually have logs to process
-if [ ! "$(ls -A $logs)" ];
-then
-echo "`date` - No logs to process" >> $record
-exit 1
-fi
-
-for host in "${hosts[@]}"
-do
-# Concat the logs in chronological order
-mkdir "$logtmp"
-cd "$logtmp"
-find "$logs/" -name "$host.torproject.org-access.log" | sort | xargs -I {} 
cat {} > "$host.torproject.org-access.log"
-
-# Time to run the web log analysis tools
-#
-# Running awstats first
-/srv/webstats.torproject.org/awstats/awstats.pl 
-config=$host.torproject.org -update
-
-# And then webalizer
-webalizer -c 
"/srv/webstats.torproject.org/configs/webalizer.$host.torproject.org.conf"
-
-# Cleanup
-cd "/srv/webstats.torproject.org"
-rm -rf "$logtmp"
-
-# And report back
-echo "`date` - Logs processed for $host" >> $record
-done



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] remove extraneous breaks

2016-03-21 Thread arma
commit 580e549f75e43a1452f982949977f67691cc1a5a
Author: Roger Dingledine 
Date:   Mon Mar 21 17:11:18 2016 -0400

remove extraneous breaks

commit edeba3d4 removed a switch, but left the "break" lines in
from that switch. fortunately the resulting behavior was not wrong,
since there was an outer switch that it was ok to break from.
---
 src/or/directory.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/or/directory.c b/src/or/directory.c
index 7130041..52cc6a9 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -2305,7 +2305,6 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
* cleans this dir conn up. */
   SEND_HS_DESC_FAILED_EVENT("BAD_DESC");
   SEND_HS_DESC_FAILED_CONTENT();
-  break;
 } else {
   char service_id[REND_SERVICE_ID_LEN_BASE32 + 1];
   /* Should never be NULL here if we found the descriptor. */
@@ -2325,7 +2324,6 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
   conn->base_.purpose = DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2;
   rend_client_desc_trynow(service_id);
   memwipe(service_id, 0, sizeof(service_id));
-  break;
 }
 break;
   }

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] fix indentation after #18332 patches

2016-03-21 Thread arma
commit 4861e245529d70da5ca146eb2da1f22f7c68b5bb
Author: Roger Dingledine 
Date:   Mon Mar 21 17:08:02 2016 -0400

fix indentation after #18332 patches

no actual changes here -- but the new indenting makes it clear
that the fixes in #18332 were not as good as they should have been.
the next commit will deal with that.
---
 src/or/directory.c | 66 +++---
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/src/or/directory.c b/src/or/directory.c
index 39fffc7..7130041 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -2298,34 +2298,34 @@ connection_dir_client_reached_eof(dir_connection_t 
*conn)
 rend_cache_entry_t *entry = NULL;
 
 if (rend_cache_store_v2_desc_as_client(body,
-  conn->requested_resource, conn->rend_data, ) < 0) {
-log_warn(LD_REND,"Fetching v2 rendezvous descriptor failed. "
- "Retrying at another directory.");
-/* We'll retry when connection_about_to_close_connection()
- * cleans this dir conn up. */
-SEND_HS_DESC_FAILED_EVENT("BAD_DESC");
-SEND_HS_DESC_FAILED_CONTENT();
-break;
+conn->requested_resource, conn->rend_data, ) < 0) {
+  log_warn(LD_REND,"Fetching v2 rendezvous descriptor failed. "
+   "Retrying at another directory.");
+  /* We'll retry when connection_about_to_close_connection()
+   * cleans this dir conn up. */
+  SEND_HS_DESC_FAILED_EVENT("BAD_DESC");
+  SEND_HS_DESC_FAILED_CONTENT();
+  break;
 } else {
-char service_id[REND_SERVICE_ID_LEN_BASE32 + 1];
-/* Should never be NULL here if we found the descriptor. */
-tor_assert(entry);
-rend_get_service_id(entry->parsed->pk, service_id);
-
-/* success. notify pending connections about this. */
-log_info(LD_REND, "Successfully fetched v2 rendezvous "
- "descriptor.");
-control_event_hs_descriptor_received(service_id,
- conn->rend_data,
- conn->identity_digest);
-control_event_hs_descriptor_content(service_id,
-conn->requested_resource,
-conn->identity_digest,
-body);
-conn->base_.purpose = DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2;
-rend_client_desc_trynow(service_id);
-memwipe(service_id, 0, sizeof(service_id));
-break;
+  char service_id[REND_SERVICE_ID_LEN_BASE32 + 1];
+  /* Should never be NULL here if we found the descriptor. */
+  tor_assert(entry);
+  rend_get_service_id(entry->parsed->pk, service_id);
+
+  /* success. notify pending connections about this. */
+  log_info(LD_REND, "Successfully fetched v2 rendezvous "
+   "descriptor.");
+  control_event_hs_descriptor_received(service_id,
+   conn->rend_data,
+   conn->identity_digest);
+  control_event_hs_descriptor_content(service_id,
+  conn->requested_resource,
+  conn->identity_digest,
+  body);
+  conn->base_.purpose = DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2;
+  rend_client_desc_trynow(service_id);
+  memwipe(service_id, 0, sizeof(service_id));
+  break;
 }
 break;
   }
@@ -3429,13 +3429,13 @@ directory_handle_command_post(dir_connection_t *conn, 
const char *headers,
   if (connection_dir_is_encrypted(conn) &&
   !strcmpstart(url,"/tor/rendezvous2/publish")) {
 if (rend_cache_store_v2_desc_as_dir(body) < 0) {
-log_warn(LD_REND, "Rejected v2 rend descriptor (length %d) from %s.",
- (int)body_len, conn->base_.address);
-write_http_status_line(conn, 400,
-   "Invalid v2 service descriptor rejected");
+  log_warn(LD_REND, "Rejected v2 rend descriptor (length %d) from %s.",
+   (int)body_len, conn->base_.address);
+  write_http_status_line(conn, 400,
+ "Invalid v2 service descriptor rejected");
 } else {
-write_http_status_line(conn, 200, "Service descriptor (v2) stored");
-log_info(LD_REND, "Handled v2 rendezvous descriptor post: accepted");
+  write_http_status_line(conn, 200, "Service descriptor (v2) stored");
+  log_info(LD_REND, "Handled v2 rendezvous descriptor post: accepted");
 }
 goto done;
   }



___
tor-commits mailing 

[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-03-21 Thread translation
commit 45e6c39cd2bb7d728999c64a294c310087838476
Author: Translation commit bot 
Date:   Mon Mar 21 18:45:56 2016 +

Update translations for torbutton-torbuttonproperties
---
 pt_BR/torbutton.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pt_BR/torbutton.properties b/pt_BR/torbutton.properties
index c351584..a578562 100644
--- a/pt_BR/torbutton.properties
+++ b/pt_BR/torbutton.properties
@@ -76,4 +76,4 @@ profileProblemTitle=Problema com o Perfil %S
 profileReadOnly=Não é possível executar %S a partir de um sistema de 
arquivo "somente-leitura". Por favor, copie %S em um outro local antes de 
tentar utilizá-lo.
 profileReadOnlyMac=Não é possível executar %S a partir de um sistema de 
arquivo "somente-leitura". Por favor, copie %S no seu Desktop ou em uma pasta 
de Aplicações antes de tentar utilizá-lo.\n 
 profileAccessDenied=%S não possui permissão para acessar o perfil. Por 
favor, ajuste as suas permissões de arquivo de sistema e tente novamente. 
-profileMigrationFailed=Migration of your existing %S profile failed.\nNew 
settings will be used.
+profileMigrationFailed=Migração de seu perfil  %S existente falhou.\nNovas 
configurações serão utilizadas.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2016-03-21 Thread translation
commit 7e40d6c644469735694f324c20106978b21d3fde
Author: Translation commit bot 
Date:   Mon Mar 21 18:45:33 2016 +

Update translations for tor-launcher-properties
---
 pt_BR/torlauncher.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pt_BR/torlauncher.properties b/pt_BR/torlauncher.properties
index 2d48aa0..73e724f 100644
--- a/pt_BR/torlauncher.properties
+++ b/pt_BR/torlauncher.properties
@@ -13,8 +13,8 @@ torlauncher.tor_bootstrap_failed_details=%1$S falhou (%2$S).
 
 torlauncher.unable_to_start_tor=Impossível iniciar Tor.
 torlauncher.tor_missing=Falta o programa de execução de Tor.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could 
not be created.
+torlauncher.torrc_missing=O arquivo torrc está faltando e não pôde ser 
criado.
+torlauncher.datadir_missing=O diretório de dados Tor não existe e não pode 
ser criado.
 torlauncher.password_hash_missing=Falha ao obter a senha criptografada.
 
 torlauncher.failed_to_get_settings=Impossível recuperar as configurações de 
Tor.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties_completed] Update translations for tor-launcher-properties_completed

2016-03-21 Thread translation
commit 66c78eaee66ead47716f0a29dcf455c3260e6a9e
Author: Translation commit bot 
Date:   Mon Mar 21 17:45:36 2016 +

Update translations for tor-launcher-properties_completed
---
 it/torlauncher.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/it/torlauncher.properties b/it/torlauncher.properties
index b5729ed..f89dd16 100644
--- a/it/torlauncher.properties
+++ b/it/torlauncher.properties
@@ -1,4 +1,4 @@
-### Copyright (c) 2014, The Tor Project, Inc.
+### Copyright (c) 2016, The Tor Project, Inc.
 ### See LICENSE for licensing information.
 
 torlauncher.error_title=Avviatore di Tor
@@ -13,8 +13,8 @@ torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
 
 torlauncher.unable_to_start_tor=Impossibile avviare Tor.⏎\n⏎\n%S
 torlauncher.tor_missing=Il file eseguibile di Tor è mancante.
-torlauncher.torrc_missing=Il file di configurazione torrc è mancante.
-torlauncher.datadir_missing=La directory dei dati di Tor non esiste.
+torlauncher.torrc_missing=Il file torrc non è presente e non è stato 
possibile crearlo.
+torlauncher.datadir_missing=La cartella dei dati di Tor non esiste e non è 
stato possibile crearla.
 torlauncher.password_hash_missing=Tentativo di ottenere la password fallito.
 
 torlauncher.failed_to_get_settings=Impossibile recuperare le impostazioni di 
Tor.⏎\n⏎\n%S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2016-03-21 Thread translation
commit b3af4bd74bbf2bafcc557c8e1c37be0244ae31d5
Author: Translation commit bot 
Date:   Mon Mar 21 17:45:32 2016 +

Update translations for tor-launcher-properties
---
 it/torlauncher.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/it/torlauncher.properties b/it/torlauncher.properties
index aed382e..f89dd16 100644
--- a/it/torlauncher.properties
+++ b/it/torlauncher.properties
@@ -13,8 +13,8 @@ torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
 
 torlauncher.unable_to_start_tor=Impossibile avviare Tor.⏎\n⏎\n%S
 torlauncher.tor_missing=Il file eseguibile di Tor è mancante.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could 
not be created.
+torlauncher.torrc_missing=Il file torrc non è presente e non è stato 
possibile crearlo.
+torlauncher.datadir_missing=La cartella dei dati di Tor non esiste e non è 
stato possibile crearla.
 torlauncher.password_hash_missing=Tentativo di ottenere la password fallito.
 
 torlauncher.failed_to_get_settings=Impossibile recuperare le impostazioni di 
Tor.⏎\n⏎\n%S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-03-21 Thread translation
commit 7ddcaa79f887ae43be99fc5384a300f8f38c8505
Author: Translation commit bot 
Date:   Mon Mar 21 17:45:57 2016 +

Update translations for torbutton-torbuttonproperties
---
 it/torbutton.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/it/torbutton.properties b/it/torbutton.properties
index 9c39e35..a7f6173 100644
--- a/it/torbutton.properties
+++ b/it/torbutton.properties
@@ -76,4 +76,4 @@ profileProblemTitle=Problema Profilo %S
 profileReadOnly=Non puoi avviare %S da un file system di sola lettura. Per 
favore copia %S in un'altra posizione prima di usarlo.
 profileReadOnlyMac=Non puoi avviare %S da un file system di sola lettura. Per 
favore copia %S sulla tua scrivania o nella cartella Applicazioni prima di 
usarlo.
 profileAccessDenied=%S non ha i permessi per accedere al profilo. Per favore, 
modifica i permessi del tuo file system e riprova.
-profileMigrationFailed=Migration of your existing %S profile failed.\nNew 
settings will be used.
+profileMigrationFailed=Migrazione del tuo profilo %S esistente 
fallita.\nVerranno usate nuove impostazioni.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttbupdatedtd] Update translations for torbutton-abouttbupdatedtd

2016-03-21 Thread translation
commit 6fcb5b3cb092c3dec2f753421011ec2100175430
Author: Translation commit bot 
Date:   Mon Mar 21 17:32:23 2016 +

Update translations for torbutton-abouttbupdatedtd
---
 he/abouttbupdate.dtd|  2 +-
 hr_HR/abouttbupdate.dtd | 10 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/he/abouttbupdate.dtd b/he/abouttbupdate.dtd
index b84f148..3949cc4 100644
--- a/he/abouttbupdate.dtd
+++ b/he/abouttbupdate.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/hr_HR/abouttbupdate.dtd b/hr_HR/abouttbupdate.dtd
index 37567bd..8a7c46f 100644
--- a/hr_HR/abouttbupdate.dtd
+++ b/hr_HR/abouttbupdate.dtd
@@ -1,6 +1,6 @@
-
-
-
-
+
+
+
+
 
-
+

___
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_completed] Update translations for tails-openpgp-applet_completed

2016-03-21 Thread translation
commit 788c89d251b69412eb9418a34e8b3e0832f6e560
Author: Translation commit bot 
Date:   Mon Mar 21 17:31:47 2016 +

Update translations for tails-openpgp-applet_completed
---
 bg/openpgp-applet.pot| 2 +-
 ca/openpgp-applet.pot| 2 +-
 da/openpgp-applet.pot| 2 +-
 de/openpgp-applet.pot| 2 +-
 el/openpgp-applet.pot| 2 +-
 en_GB/openpgp-applet.pot | 2 +-
 es/openpgp-applet.pot| 2 +-
 eu/openpgp-applet.pot| 2 +-
 fa/openpgp-applet.pot| 2 +-
 fr/openpgp-applet.pot| 2 +-
 fr_CA/openpgp-applet.pot | 2 +-
 hu/openpgp-applet.pot| 2 +-
 id/openpgp-applet.pot| 2 +-
 it/openpgp-applet.pot| 2 +-
 ja/openpgp-applet.pot| 2 +-
 ko/openpgp-applet.pot| 2 +-
 nb/openpgp-applet.pot| 2 +-
 nl/openpgp-applet.pot| 2 +-
 pl/openpgp-applet.pot| 2 +-
 pt_BR/openpgp-applet.pot | 2 +-
 ro/openpgp-applet.pot| 2 +-
 ru/openpgp-applet.pot| 2 +-
 sv/openpgp-applet.pot| 2 +-
 tr/openpgp-applet.pot| 2 +-
 uk/openpgp-applet.pot| 2 +-
 zh_CN/openpgp-applet.pot | 2 +-
 zh_TW/openpgp-applet.pot | 2 +-
 27 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/bg/openpgp-applet.pot b/bg/openpgp-applet.pot
index 78b86f2..60b7b9b 100644
--- a/bg/openpgp-applet.pot
+++ b/bg/openpgp-applet.pot
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-07 21:25+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Ivo\n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ca/openpgp-applet.pot b/ca/openpgp-applet.pot
index c38e025..31d0ea5 100644
--- a/ca/openpgp-applet.pot
+++ b/ca/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-01-27 19:57+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: laia_\n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/da/openpgp-applet.pot b/da/openpgp-applet.pot
index 9ffe1ec..5ab20cd 100644
--- a/da/openpgp-applet.pot
+++ b/da/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-08 12:29+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tommy Gade\n"
 "Language-Team: Danish 
(http://www.transifex.com/otf/torproject/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/de/openpgp-applet.pot b/de/openpgp-applet.pot
index 02ce4a8..a943d9f 100644
--- a/de/openpgp-applet.pot
+++ b/de/openpgp-applet.pot
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-03-16 15:31+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: spriver \n"
 "Language-Team: German 
(http://www.transifex.com/otf/torproject/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/el/openpgp-applet.pot b/el/openpgp-applet.pot
index 26526cc..07fb41c 100644
--- a/el/openpgp-applet.pot
+++ b/el/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-11 06:17+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: metamec\n"
 "Language-Team: Greek (http://www.transifex.com/otf/torproject/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/en_GB/openpgp-applet.pot b/en_GB/openpgp-applet.pot
index f364796..7cad224 100644
--- a/en_GB/openpgp-applet.pot
+++ b/en_GB/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-09 09:59+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/es/openpgp-applet.pot b/es/openpgp-applet.pot
index d1d4f65..19b1430 100644
--- a/es/openpgp-applet.pot
+++ b/es/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-14 12:27+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: strel\n"
 "Language-Team: Spanish 
(http://www.transifex.com/otf/torproject/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/eu/openpgp-applet.pot b/eu/openpgp-applet.pot
index 

[tor-commits] [translation/tails-openpgp-applet] Update translations for tails-openpgp-applet

2016-03-21 Thread translation
commit 88c88e2b77ad6bfa5c893bc333822a4a340386c7
Author: Translation commit bot 
Date:   Mon Mar 21 17:31:27 2016 +

Update translations for tails-openpgp-applet
---
 ar/openpgp-applet.pot|  2 +-
 bg/openpgp-applet.pot|  2 +-
 ca/openpgp-applet.pot|  2 +-
 cs/openpgp-applet.pot|  2 +-
 cy/openpgp-applet.pot|  2 +-
 da/openpgp-applet.pot|  2 +-
 de/openpgp-applet.pot|  2 +-
 el/openpgp-applet.pot|  2 +-
 en_GB/openpgp-applet.pot |  2 +-
 es/openpgp-applet.pot|  2 +-
 eu/openpgp-applet.pot|  2 +-
 fa/openpgp-applet.pot|  2 +-
 fi/openpgp-applet.pot|  2 +-
 fr/openpgp-applet.pot|  2 +-
 fr_CA/openpgp-applet.pot |  2 +-
 he/openpgp-applet.pot|  2 +-
 hr_HR/openpgp-applet.pot | 70 
 hu/openpgp-applet.pot|  2 +-
 id/openpgp-applet.pot|  2 +-
 it/openpgp-applet.pot|  2 +-
 ja/openpgp-applet.pot|  2 +-
 ko/openpgp-applet.pot|  2 +-
 lt/openpgp-applet.pot|  2 +-
 lv/openpgp-applet.pot|  2 +-
 nb/openpgp-applet.pot|  2 +-
 nl/openpgp-applet.pot|  2 +-
 nn/openpgp-applet.pot|  2 +-
 pl/openpgp-applet.pot|  2 +-
 pt_BR/openpgp-applet.pot |  2 +-
 ro/openpgp-applet.pot|  2 +-
 ru/openpgp-applet.pot|  2 +-
 sv/openpgp-applet.pot|  2 +-
 tr/openpgp-applet.pot|  2 +-
 uk/openpgp-applet.pot|  2 +-
 zh_CN/openpgp-applet.pot |  2 +-
 zh_TW/openpgp-applet.pot |  2 +-
 36 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/ar/openpgp-applet.pot b/ar/openpgp-applet.pot
index 26e1ea4..4518ba8 100644
--- a/ar/openpgp-applet.pot
+++ b/ar/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-02-05 05:51+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: ouss \n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bg/openpgp-applet.pot b/bg/openpgp-applet.pot
index 78b86f2..60b7b9b 100644
--- a/bg/openpgp-applet.pot
+++ b/bg/openpgp-applet.pot
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-07 21:25+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Ivo\n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ca/openpgp-applet.pot b/ca/openpgp-applet.pot
index c38e025..31d0ea5 100644
--- a/ca/openpgp-applet.pot
+++ b/ca/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-01-27 19:57+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: laia_\n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cs/openpgp-applet.pot b/cs/openpgp-applet.pot
index a48e66c..48f31d4 100644
--- a/cs/openpgp-applet.pot
+++ b/cs/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-03-12 19:14+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: David Stepan \n"
 "Language-Team: Czech (http://www.transifex.com/otf/torproject/language/cs/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cy/openpgp-applet.pot b/cy/openpgp-applet.pot
index 7893c07..24e87f8 100644
--- a/cy/openpgp-applet.pot
+++ b/cy/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2016-01-30 02:18+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Christopher Griffiths \n"
 "Language-Team: Welsh (http://www.transifex.com/otf/torproject/language/cy/)\n"
 "MIME-Version: 1.0\n"
diff --git a/da/openpgp-applet.pot b/da/openpgp-applet.pot
index 9ffe1ec..5ab20cd 100644
--- a/da/openpgp-applet.pot
+++ b/da/openpgp-applet.pot
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: ta...@boum.org\n"
 "POT-Creation-Date: 2015-08-10 15:55+0200\n"
-"PO-Revision-Date: 2015-12-08 12:29+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tommy Gade\n"
 "Language-Team: Danish 
(http://www.transifex.com/otf/torproject/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/de/openpgp-applet.pot b/de/openpgp-applet.pot
index 02ce4a8..a943d9f 100644
--- a/de/openpgp-applet.pot
+++ b/de/openpgp-applet.pot
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 

[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd

2016-03-21 Thread translation
commit ef5561239f3b4da52c3a0a1a0046dcdbac54ee6c
Author: Translation commit bot 
Date:   Mon Mar 21 17:28:36 2016 +

Update translations for tor-messenger-prefsdtd
---
 az/prefs.dtd|  2 +-
 cy/prefs.dtd|  2 +-
 eo/prefs.dtd|  4 ++--
 eu/prefs.dtd|  4 ++--
 gl/prefs.dtd|  2 +-
 hr_HR/prefs.dtd | 26 +-
 ia/prefs.dtd|  2 +-
 is/prefs.dtd|  2 +-
 km/prefs.dtd|  2 +-
 ko_KR/prefs.dtd |  4 ++--
 ku_IQ/prefs.dtd |  2 +-
 ky/prefs.dtd|  2 +-
 lt/prefs.dtd|  2 +-
 ms_MY/prefs.dtd |  2 +-
 my/prefs.dtd|  2 +-
 si_LK/prefs.dtd |  2 +-
 sk/prefs.dtd|  4 ++--
 sk_SK/prefs.dtd |  2 +-
 sl_SI/prefs.dtd |  2 +-
 sr/prefs.dtd|  4 ++--
 ta/prefs.dtd|  2 +-
 th/prefs.dtd|  4 ++--
 vi/prefs.dtd|  2 +-
 23 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/az/prefs.dtd b/az/prefs.dtd
index 1441b0e..553be58 100644
--- a/az/prefs.dtd
+++ b/az/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/cy/prefs.dtd b/cy/prefs.dtd
index a18e302..2c4be01 100644
--- a/cy/prefs.dtd
+++ b/cy/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/eo/prefs.dtd b/eo/prefs.dtd
index 1441b0e..81d825f 100644
--- a/eo/prefs.dtd
+++ b/eo/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/eu/prefs.dtd b/eu/prefs.dtd
index f2153e7..b051cf2 100644
--- a/eu/prefs.dtd
+++ b/eu/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/gl/prefs.dtd b/gl/prefs.dtd
index 5ab1fc0..aab34c2 100644
--- a/gl/prefs.dtd
+++ b/gl/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/hr_HR/prefs.dtd b/hr_HR/prefs.dtd
index 1441b0e..e2bd232 100644
--- a/hr_HR/prefs.dtd
+++ b/hr_HR/prefs.dtd
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ia/prefs.dtd b/ia/prefs.dtd
index 1441b0e..19f577c 100644
--- a/ia/prefs.dtd
+++ b/ia/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/is/prefs.dtd b/is/prefs.dtd
index 1441b0e..bbbf9b5 100644
--- a/is/prefs.dtd
+++ b/is/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/km/prefs.dtd b/km/prefs.dtd
index 1441b0e..ccce0b0 100644
--- a/km/prefs.dtd
+++ b/km/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/ko_KR/prefs.dtd b/ko_KR/prefs.dtd
index 1441b0e..0425efa 100644
--- a/ko_KR/prefs.dtd
+++ b/ko_KR/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/ku_IQ/prefs.dtd b/ku_IQ/prefs.dtd
index 1441b0e..f8b36a3 100644
--- a/ku_IQ/prefs.dtd
+++ b/ku_IQ/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/ky/prefs.dtd b/ky/prefs.dtd
index 1441b0e..1a87a9f 100644
--- a/ky/prefs.dtd
+++ b/ky/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/lt/prefs.dtd b/lt/prefs.dtd
index 7e9df5f..05a499d 100644
--- a/lt/prefs.dtd
+++ b/lt/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/ms_MY/prefs.dtd b/ms_MY/prefs.dtd
index 1441b0e..9dc17a7 100644
--- a/ms_MY/prefs.dtd
+++ b/ms_MY/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/my/prefs.dtd b/my/prefs.dtd
index 1441b0e..f1a392a 100644
--- a/my/prefs.dtd
+++ b/my/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/si_LK/prefs.dtd b/si_LK/prefs.dtd
index 1441b0e..ef38531 100644
--- a/si_LK/prefs.dtd
+++ b/si_LK/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
diff --git a/sk/prefs.dtd b/sk/prefs.dtd
index a320707..050ea6c 100644
--- a/sk/prefs.dtd
+++ b/sk/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/sk_SK/prefs.dtd b/sk_SK/prefs.dtd
index 5864ab6..c1427fd 100644
--- a/sk_SK/prefs.dtd
+++ b/sk_SK/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/sl_SI/prefs.dtd b/sl_SI/prefs.dtd
index 1441b0e..c3dab81 100644
--- a/sl_SI/prefs.dtd
+++ b/sl_SI/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/sr/prefs.dtd b/sr/prefs.dtd
index 1441b0e..fccdb0e 100644
--- a/sr/prefs.dtd
+++ b/sr/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/ta/prefs.dtd b/ta/prefs.dtd
index 1441b0e..2dc91f1 100644
--- a/ta/prefs.dtd
+++ b/ta/prefs.dtd
@@ -3,7 +3,7 @@
 
 
 
-
+
 
 
 
diff --git a/th/prefs.dtd b/th/prefs.dtd
index 1441b0e..0fb15b1 100644
--- a/th/prefs.dtd
+++ b/th/prefs.dtd
@@ -3,10 +3,10 @@
 
 
 
-
+
 
 
-
+
 
 
 
diff --git a/vi/prefs.dtd b/vi/prefs.dtd
index 896327e..fe9efb2 100644
--- a/vi/prefs.dtd
+++ b/vi/prefs.dtd
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [torspec/master] Clarify NoEdConsensus flag a bit harder.

2016-03-21 Thread nickm
commit 313eff650d3aa7d4a221ea2f21074eb7cc7d5c52
Author: Nick Mathewson 
Date:   Tue Mar 15 10:52:23 2016 -0400

Clarify NoEdConsensus flag a bit harder.

(Note that no corresponding tor change is needed, since we don't
actually use these keys yet.)

Resolves 17668.{S1,T1}
---
 dir-spec.txt | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/dir-spec.txt b/dir-spec.txt
index d3e5228..57188eb 100644
--- a/dir-spec.txt
+++ b/dir-spec.txt
@@ -1401,6 +1401,10 @@
 The node's master Ed25519 identity key, base64 encoded,
 without trailing =s.
 
+All implementations MUST ignore this key for any microdescriptor
+whose corresponding entry in the consensus includes the
+'NoEdConsensus' flag.
+
 (Only included when generating microdescriptors for
 consensus-method 21 or later.)
 
@@ -2388,8 +2392,10 @@
   "id" lines in microdescriptors.
 
 * If consensus method 22 or later is used, and the votes do not
-  produce a majority consensus about Ed25519 key (see 3.8.0.1 below), 
the
-  consensus must include a NoEdConsensus flag on the "s" line.
+  produce a majority consensus about a relay's Ed25519 key (see
+  3.8.0.1 below), the consensus must include a NoEdConsensus flag on
+  the "s" line for every relay whose listed Ed key does not reflect
+  consensus.
 
  The signatures at the end of a consensus document are sorted in
  ascending order by identity digest.



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [torspec/master] Document how ed25519 voting actually should work

2016-03-21 Thread nickm
commit dc9916048838a1963e4533858cbfbc74c7f8652f
Author: Nick Mathewson 
Date:   Tue Feb 23 10:03:02 2016 -0500

Document how ed25519 voting actually should work
---
 dir-spec.txt | 48 +---
 1 file changed, 37 insertions(+), 11 deletions(-)

diff --git a/dir-spec.txt b/dir-spec.txt
index 2ab1878..d3e5228 100644
--- a/dir-spec.txt
+++ b/dir-spec.txt
@@ -1895,6 +1895,8 @@
   "HSDir" if the router is considered a v2 hidden service directory.
   "Named" if the router's identity-nickname mapping is canonical,
  and this authority binds names.
+  "NoEdConsensus" if any Ed25519 key in the router's descriptor or
+ microdesriptor does not reflect authority consensus.
   "Stable" if the router is suitable for long-lived circuits.
   "Running" if the router is currently usable.
   "Unnamed" if another router has bound the name used by this
@@ -2156,6 +2158,9 @@
authority believes that it's been up for at least 96 hours (or the current
value of MinUptimeHidServDirectoryV2).
 
+   "NoEdConsensus" -- authorities should not vote on this flag; it is
+   produced as part of the consensus for consensus method 22 or later.
+
Directory server administrators may label some relays or IPs as
blacklisted, and elect not to include them in their network-status lists.
 
@@ -2295,11 +2300,14 @@
   (Consensus method earlier than 21)
 
 * is included according to the rules in section 3.8.0.1 and
-  3.8.0.2 below. (Consensus method 21 or later)
+  3.8.0.2 below. (Consensus method 22 or later)
 
-* For any given RSA or Ed25519 identity, we include at most
+* For any given RSA identity digest, we include at most
   one router status entry.
 
+* For any given Ed25519 identity, we include at most one router
+  status entry.
+
 * A router entry has a flag set if that is included by more than half
   of the authorities who care about that flag.
 
@@ -2379,6 +2387,10 @@
 * If consensus method 18 or later is used, authorities include
   "id" lines in microdescriptors.
 
+* If consensus method 22 or later is used, and the votes do not
+  produce a majority consensus about Ed25519 key (see 3.8.0.1 below), 
the
+  consensus must include a NoEdConsensus flag on the "s" line.
+
  The signatures at the end of a consensus document are sorted in
  ascending order by identity digest.
 
@@ -2387,24 +2399,35 @@
 
 3.8.0.1. Deciding which Ids to include.
 
-  For each  that is listed by more than half of the total
-authorities (not just total votes), include it.  (No other 
-can have as many votes.)
+  This sorting algorithm is used for consensus-method 22 and later.
+
+  First, consider each listing by tuple of  identities, where 'Ed'
+may be "None" if the voter included "id ed25519 none" to indicate that
+the authority knows what ed25519 identities are, and thinks that the RSA
+key doesn't have one.
+
+  For each such  tuple that is listed by more than half of the
+total authorities (not just total votes), include it.  (It is not
+possible for any other  to have as many votes.)  If more
+than half of the authorities list a single  pair of this type, we
+consider that Ed key to be "consensus"; see description of the
+NoEdConsensus flag.
 
   Log any other id-RSA values corresponding to an id-Ed we included, and any
 other id-Ed values corresponding to an id-RSA we included.
 
   For each  that is not yet included, if it is listed by more than
 half of the total authorities, and we do not already have it listed with
-some , include it without an id-Ed.
+some , include it, but do not consider its Ed identity canonical.
 
 3.8.0.2 Deciding which descriptors to include
 
Deciding which descriptors to include.
 
A tuple belongs to an  identity if it is a new tuple that
-   matches both ID parts, or if it is an old tuple that matches the RSA part.
-   A tuple belongs to an  identity if its RSA identity matches.
+   matches both ID parts, or if it is an old tuple (one with no Ed opinion)
+   that matches the RSA part.  A tuple belongs to an  identity if its
+   RSA identity matches.
 
A tuple matches another tuple if all the fields that are present in both
tuples are the same.
@@ -2414,7 +2437,6 @@
that matches the largest set, breaking ties in favor of the most recently
published, and then in favor of the smaller server descriptor digest.
 
-
 3.8.1. Forward compatibility
 
Future versions of Tor will need to include new information in the
@@ -2444,8 +2466,8 @@
  "18" -- Adds 'id' to microdescriptors.
  "19" -- Adds "package" lines to consensuses
  "20" -- Adds GuardFraction information to 

[tor-commits] [translation/tor-messenger-privdtd] Update translations for tor-messenger-privdtd

2016-03-21 Thread translation
commit b7fe051357222982ca643ece7debe2bf5e76f04f
Author: Translation commit bot 
Date:   Mon Mar 21 17:29:38 2016 +

Update translations for tor-messenger-privdtd
---
 az/priv.dtd| 2 ++
 bn/priv.dtd| 2 ++
 eo/priv.dtd| 2 ++
 es_AR/priv.dtd | 2 ++
 es_MX/priv.dtd | 2 ++
 et/priv.dtd| 2 ++
 eu/priv.dtd| 2 ++
 fil/priv.dtd   | 2 ++
 fy/priv.dtd| 2 ++
 gl/priv.dtd| 2 ++
 hi/priv.dtd| 2 ++
 hr_HR/priv.dtd | 4 ++--
 is/priv.dtd| 2 ++
 km/priv.dtd| 2 ++
 mr/priv.dtd| 2 ++
 ne/priv.dtd| 2 ++
 pa/priv.dtd| 2 ++
 si_LK/priv.dtd | 2 ++
 sk_SK/priv.dtd | 2 ++
 sl/priv.dtd| 2 ++
 sr/priv.dtd| 2 ++
 ta/priv.dtd| 2 ++
 th/priv.dtd| 2 ++
 uz/priv.dtd| 2 ++
 zh_HK/priv.dtd | 2 ++
 25 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/az/priv.dtd b/az/priv.dtd
new file mode 100644
index 000..e1e5b31
--- /dev/null
+++ b/az/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/bn/priv.dtd b/bn/priv.dtd
new file mode 100644
index 000..ec62f13
--- /dev/null
+++ b/bn/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/eo/priv.dtd b/eo/priv.dtd
new file mode 100644
index 000..908e3d8
--- /dev/null
+++ b/eo/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/es_AR/priv.dtd b/es_AR/priv.dtd
new file mode 100644
index 000..b1a72cc
--- /dev/null
+++ b/es_AR/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/es_MX/priv.dtd b/es_MX/priv.dtd
new file mode 100644
index 000..b1a72cc
--- /dev/null
+++ b/es_MX/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/et/priv.dtd b/et/priv.dtd
new file mode 100644
index 000..2e65400
--- /dev/null
+++ b/et/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/eu/priv.dtd b/eu/priv.dtd
new file mode 100644
index 000..c1ab78e
--- /dev/null
+++ b/eu/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/fil/priv.dtd b/fil/priv.dtd
new file mode 100644
index 000..30be152
--- /dev/null
+++ b/fil/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/fy/priv.dtd b/fy/priv.dtd
new file mode 100644
index 000..198985d
--- /dev/null
+++ b/fy/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/gl/priv.dtd b/gl/priv.dtd
new file mode 100644
index 000..4fa2c3c
--- /dev/null
+++ b/gl/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/hi/priv.dtd b/hi/priv.dtd
new file mode 100644
index 000..cddc35b
--- /dev/null
+++ b/hi/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/hr_HR/priv.dtd b/hr_HR/priv.dtd
index 7007979..6c4d395 100644
--- a/hr_HR/priv.dtd
+++ b/hr_HR/priv.dtd
@@ -1,2 +1,2 @@
-
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/is/priv.dtd b/is/priv.dtd
new file mode 100644
index 000..7381b53
--- /dev/null
+++ b/is/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/km/priv.dtd b/km/priv.dtd
new file mode 100644
index 000..8f77911
--- /dev/null
+++ b/km/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/mr/priv.dtd b/mr/priv.dtd
new file mode 100644
index 000..b0dea77
--- /dev/null
+++ b/mr/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/ne/priv.dtd b/ne/priv.dtd
new file mode 100644
index 000..bc7deff
--- /dev/null
+++ b/ne/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/pa/priv.dtd b/pa/priv.dtd
new file mode 100644
index 000..aaefece
--- /dev/null
+++ b/pa/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/si_LK/priv.dtd b/si_LK/priv.dtd
new file mode 100644
index 000..4ef967f
--- /dev/null
+++ b/si_LK/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/sk_SK/priv.dtd b/sk_SK/priv.dtd
new file mode 100644
index 000..cb6883b
--- /dev/null
+++ b/sk_SK/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/sl/priv.dtd b/sl/priv.dtd
new file mode 100644
index 000..f601573
--- /dev/null
+++ b/sl/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/sr/priv.dtd b/sr/priv.dtd
new file mode 100644
index 000..fd356b2
--- /dev/null
+++ b/sr/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/ta/priv.dtd b/ta/priv.dtd
new file mode 100644
index 000..2e6792e
--- /dev/null
+++ b/ta/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/th/priv.dtd b/th/priv.dtd
new file mode 100644
index 000..8a9e21b
--- /dev/null
+++ b/th/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/uz/priv.dtd b/uz/priv.dtd
new file mode 100644
index 000..00d2c94
--- /dev/null
+++ b/uz/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/zh_HK/priv.dtd b/zh_HK/priv.dtd
new file mode 100644
index 000..cba66f7
--- /dev/null
+++ b/zh_HK/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file


[tor-commits] [torspec/master] Merge remote-tracking branch 'public/ed25519_voting_again'

2016-03-21 Thread nickm
commit a5d0978a833a610d5f1ed4f5424eca563deba65e
Merge: 2a9f49b 313eff6
Author: Nick Mathewson 
Date:   Mon Mar 21 13:28:17 2016 -0400

Merge remote-tracking branch 'public/ed25519_voting_again'

 dir-spec.txt | 54 +++---
 1 file changed, 43 insertions(+), 11 deletions(-)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-privproperties_completed] Update translations for tor-messenger-privproperties_completed

2016-03-21 Thread translation
commit 56fdc33c7699181e82213e80f1ed6d4c09ae2492
Author: Translation commit bot 
Date:   Mon Mar 21 17:28:56 2016 +

Update translations for tor-messenger-privproperties_completed
---
 fr/priv.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fr/priv.properties b/fr/priv.properties
index 72d764e..0567041 100644
--- a/fr/priv.properties
+++ b/fr/priv.properties
@@ -1,2 +1,2 @@
 priv.account=Génération d'une clé privée pour %S (%S) ...
-priv.failed=La génération des clés a échoué : %S 
+priv.failed=Génération de la clé a échoué : %S 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Document has_ed25519_listing

2016-03-21 Thread nickm
commit 60ca3f358f80930778b12c9fcc8e3cf562b64e8e
Author: Nick Mathewson 
Date:   Tue Feb 23 08:13:39 2016 -0500

Document has_ed25519_listing
---
 src/or/or.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/or/or.h b/src/or/or.h
index b6d6ec0..b24b6a8 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2377,7 +2377,9 @@ typedef struct vote_routerstatus_t {
   char *version; /**< The version that the authority says this router is
   * running. */
   unsigned int has_measured_bw:1; /**< The vote had a measured bw */
-  unsigned int has_ed25519_listing:1; /** DOCDOC */
+  /** True iff the vote included an entry for ed25519 ID, or included
+   * "id ed25519 none" to indicate that there was no ed25519 ID. */
+  unsigned int has_ed25519_listing:1;
   unsigned int ed25519_reflects_consensus:1; /** DOCDOC */
   uint32_t measured_bw_kb; /**< Measured bandwidth (capacity) of the router */
   /** The hash or hashes that the authority claims this microdesc has. */



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Assert that dircollator is collated when we're reading its output.

2016-03-21 Thread nickm
commit beef6ed45160f096815b4ea840ff671fb484d1da
Author: Nick Mathewson 
Date:   Tue Mar 15 10:24:18 2016 -0400

Assert that dircollator is collated when we're reading its output.

Fix for 17668.S2.
---
 src/or/dircollate.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index ca8b7ca..2f02512 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -303,6 +303,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 int
 dircollator_n_routers(dircollator_t *dc)
 {
+  tor_assert(dc->is_collated);
   return smartlist_len(dc->all_rsa_sha1_lst);
 }
 
@@ -317,6 +318,7 @@ dircollator_n_routers(dircollator_t *dc)
 vote_routerstatus_t **
 dircollator_get_votes_for_router(dircollator_t *dc, int idx)
 {
+  tor_assert(dc->is_collated);
   tor_assert(idx < smartlist_len(dc->all_rsa_sha1_lst));
   return digestmap_get(dc->by_collated_rsa_sha1,
smartlist_get(dc->all_rsa_sha1_lst, idx));



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Never vote for an ed key twice.

2016-03-21 Thread nickm
commit 13a31e72db1b009623aa55bd52ffe7390a22623d
Author: Nick Mathewson 
Date:   Mon Feb 22 11:43:59 2016 -0500

Never vote for an ed key twice.

When generating a vote, and we have two routerinfos with the same ed
key, omit the one published earlier.

This was supposed to have been solved by key pinning, but when I
made key pinning optional, I didn't realize that this would jump up
and bite us.  It is part of bug 18318, and the root cause of 17668.
---
 changes/bug18318_ed |  7 +++
 src/or/dirserv.c| 39 +++
 src/or/or.h |  4 
 3 files changed, 50 insertions(+)

diff --git a/changes/bug18318_ed b/changes/bug18318_ed
new file mode 100644
index 000..af39234
--- /dev/null
+++ b/changes/bug18318_ed
@@ -0,0 +1,7 @@
+  o Major bugfixes:
+- When generating a vote with keypinning disabled, never include two
+  entries for the same ed25519 identity.  This bug was causing
+  authorities to generate votes that they could not parse when a router
+  violated key pinning by changing its RSA identity but keeping its
+  Ed25519 identity.  Fixes bug 17668; fixes part of bug 18318.  Bugfix on
+  0.2.7.2-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 8d9f166..016514f 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2126,6 +2126,44 @@ get_possible_sybil_list(const smartlist_t *routers)
   return omit_as_sybil;
 }
 
+/** If there are entries in routers with exactly the same ed25519 keys,
+ * remove the older one.  May alter the order of the list. */
+static void
+routers_make_ed_keys_unique(smartlist_t *routers)
+{
+  routerinfo_t *ri2;
+  digest256map_t *by_ed_key = digest256map_new();
+
+  SMARTLIST_FOREACH_BEGIN(routers, routerinfo_t *, ri) {
+ri->omit_from_vote = 0;
+if (ri->signing_key_cert == NULL)
+  continue; /* No ed key */
+const uint8_t *pk = ri->signing_key_cert->signing_key.pubkey;
+if ((ri2 = digest256map_get(by_ed_key, pk))) {
+  /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
+   * one has the earlier published_on. */
+  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+digest256map_set(by_ed_key, pk, ri);
+ri2->omit_from_vote = 1;
+  } else {
+ri->omit_from_vote = 1;
+  }
+} else {
+  /* Add to map */
+  digest256map_set(by_ed_key, pk, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+
+  digest256map_free(by_ed_key, NULL);
+
+  /* Now remove every router where the omit_from_vote flag got set. */
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
+if (ri->omit_from_vote) {
+  SMARTLIST_DEL_CURRENT(routers, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+}
+
 /** Extract status information from ri and from other authority
  * functions and store it in rs>.
  *
@@ -2815,6 +2853,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
+  routers_make_ed_keys_unique(routers);
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
diff --git a/src/or/or.h b/src/or/or.h
index 4496cbc..b6d6ec0 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2081,6 +2081,10 @@ typedef struct {
* tests for it. */
   unsigned int needs_retest_if_added:1;
 
+  /** Used during voting to indicate that we should not include an entry for
+   * this routerinfo. Used only during voting. */
+  unsigned int omit_from_vote:1;
+
 /** Tor can use this router for general positions in circuits; we got it
  * from a directory server as usual, or we're an authority and a server
  * uploaded it. */



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-loggerproperties] Update translations for tor-messenger-loggerproperties

2016-03-21 Thread translation
commit 8cc09b60e44d80107a24fe93a66a0b8b12afd917
Author: Translation commit bot 
Date:   Mon Mar 21 17:27:40 2016 +

Update translations for tor-messenger-loggerproperties
---
 hr_HR/logger.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hr_HR/logger.properties b/hr_HR/logger.properties
index 2228c50..e296406 100644
--- a/hr_HR/logger.properties
+++ b/hr_HR/logger.properties
@@ -4,4 +4,4 @@
 
 # LOCALIZATION NOTE (badLogfile):
 #  %S is the filename of the log file.
-badLogfile=Empty or corrupt log file: %S
+badLogfile=Prazna ili korumpirana datoteka zapisa o događajima: %S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Use nth consistently in dircollate.h.

2016-03-21 Thread nickm
commit 2f2fba8a918674b7187a5b497bb156b79aaec4e1
Author: Nick Mathewson 
Date:   Tue Mar 15 10:39:50 2016 -0400

Use nth consistently in dircollate.h.

Documentation-only patch. Issue 17668.T6.
---
 src/or/dircollate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 2f02512..43cf27f 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -22,8 +22,8 @@ static void dircollator_collate_by_ed25519(dircollator_t *dc);
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
-  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
-   * any) received for this digest pair from the n'th voter. */
+  /* The nth member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the nth voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

2016-03-21 Thread nickm
commit e1e62f9d5735da64dc1435d3a40db77f6229766a
Merge: 920e3d6 2f2fba8
Author: Nick Mathewson 
Date:   Mon Mar 21 13:25:12 2016 -0400

Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

 changes/bug17668   |  5 
 changes/bug17702   |  6 
 changes/bug18318_ed|  7 +
 changes/bug18368   |  5 
 src/or/dircollate.c| 78 ++
 src/or/dircollate.h| 24 ++--
 src/or/dirserv.c   | 75 +---
 src/or/dirserv.h   |  2 +-
 src/or/dirvote.c   | 35 ++
 src/or/dirvote.h   |  7 +++--
 src/or/networkstatus.c |  2 +-
 src/or/or.h| 13 +++--
 src/or/routerparse.c   | 25 
 13 files changed, 239 insertions(+), 45 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.2.7] After we strip out duplicate entries from 'routers', don't use 'rl'.

2016-03-21 Thread nickm
commit 48f8229504a00085676a737d9b519548ffc9d145
Author: Nick Mathewson 
Date:   Tue Mar 15 10:15:59 2016 -0400

After we strip out duplicate entries from 'routers', don't use 'rl'.

We've got to make sure that every single subsequent calculation in
dirserv_generate_networkstatus_vote_obj() are based on the list of
routerinfo_t *after* we've removed possible duplicates, not before.
Fortunately, none of the functions that were taking a routerlist_t
as an argument were actually using any fields other than this list
of routers.

Resolves issue 18318.DG3.
---
 src/or/dirserv.c   | 30 ++
 src/or/dirserv.h   |  2 +-
 src/or/networkstatus.c |  2 +-
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 016514f..ab8ddfe 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1422,7 +1422,7 @@ router_counts_toward_thresholds(const node_t *node, 
time_t now,
  *
  * Also, set the is_exit flag of each router appropriately. */
 static void
-dirserv_compute_performance_thresholds(routerlist_t *rl,
+dirserv_compute_performance_thresholds(const smartlist_t *routers,
digestmap_t *omit_as_sybil)
 {
   int n_active, n_active_nonexit, n_familiar;
@@ -1450,18 +1450,18 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
* sort them and use that to compute thresholds. */
   n_active = n_active_nonexit = 0;
   /* Uptime for every active router. */
-  uptimes = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  uptimes = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active router. */
-  bandwidths_kb = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  bandwidths_kb = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active non-exit router. */
   bandwidths_excluding_exits_kb =
-tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Weighted mean time between failure for each active router. */
-  mtbfs = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  mtbfs = tor_calloc(smartlist_len(routers), sizeof(double));
   /* Time-known for each active router. */
-  tks = tor_calloc(smartlist_len(rl->routers), sizeof(long));
+  tks = tor_calloc(smartlist_len(routers), sizeof(long));
   /* Weighted fractional uptime for each active router. */
-  wfus = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  wfus = tor_calloc(smartlist_len(routers), sizeof(double));
 
   nodelist_assert_ok();
 
@@ -1596,11 +1596,11 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
  * networkstatus_getinfo_by_purpose().
  */
 void
-dirserv_compute_bridge_flag_thresholds(routerlist_t *rl)
+dirserv_compute_bridge_flag_thresholds(const smartlist_t *routers)
 {
 
   digestmap_t *omit_as_sybil = digestmap_new();
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
   digestmap_free(omit_as_sybil, NULL);
 }
 
@@ -1753,16 +1753,13 @@ dirserv_get_bandwidth_for_router_kb(const routerinfo_t 
*ri)
  * how many measured bandwidths we know.  This is used to decide whether we
  * ever trust advertised bandwidths for purposes of assigning flags. */
 static void
-dirserv_count_measured_bws(routerlist_t *rl)
+dirserv_count_measured_bws(const smartlist_t *routers)
 {
   /* Initialize this first */
   routers_with_measured_bw = 0;
 
-  tor_assert(rl);
-  tor_assert(rl->routers);
-
   /* Iterate over the routerlist and count measured bandwidths */
-  SMARTLIST_FOREACH_BEGIN(rl->routers, routerinfo_t *, ri) {
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
 /* Check if we know a measured bandwidth for this one */
 if (dirserv_has_measured_bw(ri->cache_info.identity_digest)) {
   ++routers_with_measured_bw;
@@ -2854,6 +2851,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
   routers_make_ed_keys_unique(routers);
+  /* After this point, don't use rl->routers; use 'routers' instead. */
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
@@ -2864,9 +2862,9 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   /* Count how many have measured bandwidths so we know how to assign flags;
* this must come before dirserv_compute_performance_thresholds() */
-  dirserv_count_measured_bws(rl);
+  dirserv_count_measured_bws(routers);
 
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
 
   routerstatuses = smartlist_new();
   microdescriptors = smartlist_new();
diff --git a/src/or/dirserv.h b/src/or/dirserv.h
index d07339b..b16a67c 100644
--- a/src/or/dirserv.h
+++ 

[tor-commits] [tor/master] After we strip out duplicate entries from 'routers', don't use 'rl'.

2016-03-21 Thread nickm
commit 48f8229504a00085676a737d9b519548ffc9d145
Author: Nick Mathewson 
Date:   Tue Mar 15 10:15:59 2016 -0400

After we strip out duplicate entries from 'routers', don't use 'rl'.

We've got to make sure that every single subsequent calculation in
dirserv_generate_networkstatus_vote_obj() are based on the list of
routerinfo_t *after* we've removed possible duplicates, not before.
Fortunately, none of the functions that were taking a routerlist_t
as an argument were actually using any fields other than this list
of routers.

Resolves issue 18318.DG3.
---
 src/or/dirserv.c   | 30 ++
 src/or/dirserv.h   |  2 +-
 src/or/networkstatus.c |  2 +-
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 016514f..ab8ddfe 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1422,7 +1422,7 @@ router_counts_toward_thresholds(const node_t *node, 
time_t now,
  *
  * Also, set the is_exit flag of each router appropriately. */
 static void
-dirserv_compute_performance_thresholds(routerlist_t *rl,
+dirserv_compute_performance_thresholds(const smartlist_t *routers,
digestmap_t *omit_as_sybil)
 {
   int n_active, n_active_nonexit, n_familiar;
@@ -1450,18 +1450,18 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
* sort them and use that to compute thresholds. */
   n_active = n_active_nonexit = 0;
   /* Uptime for every active router. */
-  uptimes = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  uptimes = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active router. */
-  bandwidths_kb = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  bandwidths_kb = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active non-exit router. */
   bandwidths_excluding_exits_kb =
-tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Weighted mean time between failure for each active router. */
-  mtbfs = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  mtbfs = tor_calloc(smartlist_len(routers), sizeof(double));
   /* Time-known for each active router. */
-  tks = tor_calloc(smartlist_len(rl->routers), sizeof(long));
+  tks = tor_calloc(smartlist_len(routers), sizeof(long));
   /* Weighted fractional uptime for each active router. */
-  wfus = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  wfus = tor_calloc(smartlist_len(routers), sizeof(double));
 
   nodelist_assert_ok();
 
@@ -1596,11 +1596,11 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
  * networkstatus_getinfo_by_purpose().
  */
 void
-dirserv_compute_bridge_flag_thresholds(routerlist_t *rl)
+dirserv_compute_bridge_flag_thresholds(const smartlist_t *routers)
 {
 
   digestmap_t *omit_as_sybil = digestmap_new();
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
   digestmap_free(omit_as_sybil, NULL);
 }
 
@@ -1753,16 +1753,13 @@ dirserv_get_bandwidth_for_router_kb(const routerinfo_t 
*ri)
  * how many measured bandwidths we know.  This is used to decide whether we
  * ever trust advertised bandwidths for purposes of assigning flags. */
 static void
-dirserv_count_measured_bws(routerlist_t *rl)
+dirserv_count_measured_bws(const smartlist_t *routers)
 {
   /* Initialize this first */
   routers_with_measured_bw = 0;
 
-  tor_assert(rl);
-  tor_assert(rl->routers);
-
   /* Iterate over the routerlist and count measured bandwidths */
-  SMARTLIST_FOREACH_BEGIN(rl->routers, routerinfo_t *, ri) {
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
 /* Check if we know a measured bandwidth for this one */
 if (dirserv_has_measured_bw(ri->cache_info.identity_digest)) {
   ++routers_with_measured_bw;
@@ -2854,6 +2851,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
   routers_make_ed_keys_unique(routers);
+  /* After this point, don't use rl->routers; use 'routers' instead. */
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
@@ -2864,9 +2862,9 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   /* Count how many have measured bandwidths so we know how to assign flags;
* this must come before dirserv_compute_performance_thresholds() */
-  dirserv_count_measured_bws(rl);
+  dirserv_count_measured_bws(routers);
 
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
 
   routerstatuses = smartlist_new();
   microdescriptors = smartlist_new();
diff --git a/src/or/dirserv.h b/src/or/dirserv.h
index d07339b..b16a67c 100644
--- a/src/or/dirserv.h
+++ 

[tor-commits] [tor/master] In routers_make_ed_keys_unique, break ties for published_on

2016-03-21 Thread nickm
commit b24f15a9a16acc8009c25823a127f3090b9b2edc
Author: Nick Mathewson 
Date:   Tue Mar 15 10:34:05 2016 -0400

In routers_make_ed_keys_unique, break ties for published_on

This ensures that if we can't use published_on to decide an ed,rsa
mapping, we at least decide deterministically.

Resolves 17668.T3
---
 src/or/dirserv.c | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index ab8ddfe..ae67e8e 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2124,7 +2124,8 @@ get_possible_sybil_list(const smartlist_t *routers)
 }
 
 /** If there are entries in routers with exactly the same ed25519 keys,
- * remove the older one.  May alter the order of the list. */
+ * remove the older one.  If they are exactly the same age, remove the one
+ * with the greater descriptor digest. May alter the order of the list. */
 static void
 routers_make_ed_keys_unique(smartlist_t *routers)
 {
@@ -2139,7 +2140,12 @@ routers_make_ed_keys_unique(smartlist_t *routers)
 if ((ri2 = digest256map_get(by_ed_key, pk))) {
   /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
* one has the earlier published_on. */
-  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+  const time_t ri_pub = ri->cache_info.published_on;
+  const time_t ri2_pub = ri2->cache_info.published_on;
+  if (ri2_pub < ri_pub ||
+  (ri2_pub == ri_pub &&
+   memcmp(ri->cache_info.signed_descriptor_digest,
+  ri2->cache_info.signed_descriptor_digest,DIGEST_LEN)<0)) {
 digest256map_set(by_ed_key, pk, ri);
 ri2->omit_from_vote = 1;
   } else {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Merge branch 'maint-0.2.7' into release-0.2.7

2016-03-21 Thread nickm
commit 54b23c7415c139f27cbc298823438a1a02dd4510
Merge: 30f5408 e1e62f9
Author: Nick Mathewson 
Date:   Mon Mar 21 13:25:25 2016 -0400

Merge branch 'maint-0.2.7' into release-0.2.7

 changes/bug17668   |  5 
 changes/bug17702   |  6 
 changes/bug18318_ed|  7 +
 changes/bug18368   |  5 
 src/or/dircollate.c| 78 ++
 src/or/dircollate.h| 24 ++--
 src/or/dirserv.c   | 75 +---
 src/or/dirserv.h   |  2 +-
 src/or/dirvote.c   | 35 ++
 src/or/dirvote.h   |  7 +++--
 src/or/networkstatus.c |  2 +-
 src/or/or.h| 13 +++--
 src/or/routerparse.c   | 25 
 13 files changed, 239 insertions(+), 45 deletions(-)

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Enable ed25519 collator in voting.

2016-03-21 Thread nickm
commit 60efce445b17d4b4153e91527887873812f5599f
Author: Nick Mathewson 
Date:   Mon Feb 22 10:07:42 2016 -0500

Enable ed25519 collator in voting.

Previously, I had left in some debugging code with /*XXX*/ after it,
which nobody noticed.  Live and learn!  Next time I will use /*XXX
DO NOT COMMIT*/ or something.

We need to define a new consensus method for this; consensus method
21 shouldn't actually be used.

Fixes bug 17702; bugfix on 0.2.7.2-alpha.
---
 changes/bug17702| 6 ++
 src/or/dircollate.c | 2 +-
 src/or/dirvote.c| 7 +++
 src/or/dirvote.h| 7 ---
 4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/changes/bug17702 b/changes/bug17702
new file mode 100644
index 000..4fda36f
--- /dev/null
+++ b/changes/bug17702
@@ -0,0 +1,6 @@
+  o Major bugfixes:
+- Actually enable Ed25519-based directory collation.
+  Previously, the code had been written, but some debugging code that had
+  accidentally been left in the codebase made it stay turned off.
+  Fixes bug 17702; bugfix on 0.2.7.2-alpha.
+
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 4c812c4..f56aea8 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -159,7 +159,7 @@ dircollator_collate(dircollator_t *dc, int consensus_method)
   tor_assert(!dc->is_collated);
   dc->all_rsa_sha1_lst = smartlist_new();
 
-  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING + 10/*XXX*/)
+  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
 dircollator_collate_by_rsa(dc);
   else
 dircollator_collate_by_ed25519(dc);
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index d8e6ee2..be0635d 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -558,6 +558,13 @@ compute_consensus_method(smartlist_t *votes)
 static int
 consensus_method_is_supported(int method)
 {
+  if (method == MIN_METHOD_FOR_ED25519_ID_IN_MD) {
+/* This method was broken due to buggy code accidently left in
+ * dircollate.c; do not actually use it.
+ */
+return 0;
+  }
+
   return (method >= MIN_SUPPORTED_CONSENSUS_METHOD) &&
 (method <= MAX_SUPPORTED_CONSENSUS_METHOD);
 }
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index dca8540..50c2496 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -55,7 +55,7 @@
 #define MIN_SUPPORTED_CONSENSUS_METHOD 13
 
 /** The highest consensus method that we currently support. */
-#define MAX_SUPPORTED_CONSENSUS_METHOD 21
+#define MAX_SUPPORTED_CONSENSUS_METHOD 22
 
 /** Lowest consensus method where microdesc consensuses omit any entry
  * with no microdesc. */
@@ -87,11 +87,12 @@
 #define MIN_METHOD_FOR_GUARDFRACTION 20
 
 /** Lowest consensus method where authorities may include an "id" line for
- * ed25519 identities in microdescriptors. */
+ * ed25519 identities in microdescriptors. (Broken; see
+ * consensus_method_is_supported() for more info.) */
 #define MIN_METHOD_FOR_ED25519_ID_IN_MD 21
 /** Lowest consensus method where authorities vote on ed25519 ids and ensure
  * ed25519 id consistency. */
-#define MIN_METHOD_FOR_ED25519_ID_VOTING MIN_METHOD_FOR_ED25519_ID_IN_MD
+#define MIN_METHOD_FOR_ED25519_ID_VOTING 22
 
 /** Default bandwidth to clip unmeasured bandwidths to using method >=
  * MIN_METHOD_TO_CLIP_UNMEASURED_BW.  (This is not a consensus method; do not



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Never vote for an ed key twice.

2016-03-21 Thread nickm
commit 13a31e72db1b009623aa55bd52ffe7390a22623d
Author: Nick Mathewson 
Date:   Mon Feb 22 11:43:59 2016 -0500

Never vote for an ed key twice.

When generating a vote, and we have two routerinfos with the same ed
key, omit the one published earlier.

This was supposed to have been solved by key pinning, but when I
made key pinning optional, I didn't realize that this would jump up
and bite us.  It is part of bug 18318, and the root cause of 17668.
---
 changes/bug18318_ed |  7 +++
 src/or/dirserv.c| 39 +++
 src/or/or.h |  4 
 3 files changed, 50 insertions(+)

diff --git a/changes/bug18318_ed b/changes/bug18318_ed
new file mode 100644
index 000..af39234
--- /dev/null
+++ b/changes/bug18318_ed
@@ -0,0 +1,7 @@
+  o Major bugfixes:
+- When generating a vote with keypinning disabled, never include two
+  entries for the same ed25519 identity.  This bug was causing
+  authorities to generate votes that they could not parse when a router
+  violated key pinning by changing its RSA identity but keeping its
+  Ed25519 identity.  Fixes bug 17668; fixes part of bug 18318.  Bugfix on
+  0.2.7.2-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 8d9f166..016514f 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2126,6 +2126,44 @@ get_possible_sybil_list(const smartlist_t *routers)
   return omit_as_sybil;
 }
 
+/** If there are entries in routers with exactly the same ed25519 keys,
+ * remove the older one.  May alter the order of the list. */
+static void
+routers_make_ed_keys_unique(smartlist_t *routers)
+{
+  routerinfo_t *ri2;
+  digest256map_t *by_ed_key = digest256map_new();
+
+  SMARTLIST_FOREACH_BEGIN(routers, routerinfo_t *, ri) {
+ri->omit_from_vote = 0;
+if (ri->signing_key_cert == NULL)
+  continue; /* No ed key */
+const uint8_t *pk = ri->signing_key_cert->signing_key.pubkey;
+if ((ri2 = digest256map_get(by_ed_key, pk))) {
+  /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
+   * one has the earlier published_on. */
+  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+digest256map_set(by_ed_key, pk, ri);
+ri2->omit_from_vote = 1;
+  } else {
+ri->omit_from_vote = 1;
+  }
+} else {
+  /* Add to map */
+  digest256map_set(by_ed_key, pk, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+
+  digest256map_free(by_ed_key, NULL);
+
+  /* Now remove every router where the omit_from_vote flag got set. */
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
+if (ri->omit_from_vote) {
+  SMARTLIST_DEL_CURRENT(routers, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+}
+
 /** Extract status information from ri and from other authority
  * functions and store it in rs>.
  *
@@ -2815,6 +2853,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
+  routers_make_ed_keys_unique(routers);
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
diff --git a/src/or/or.h b/src/or/or.h
index 4496cbc..b6d6ec0 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2081,6 +2081,10 @@ typedef struct {
* tests for it. */
   unsigned int needs_retest_if_added:1;
 
+  /** Used during voting to indicate that we should not include an entry for
+   * this routerinfo. Used only during voting. */
+  unsigned int omit_from_vote:1;
+
 /** Tor can use this router for general positions in circuits; we got it
  * from a directory server as usual, or we're an authority and a server
  * uploaded it. */



___
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.2.7'

2016-03-21 Thread nickm
commit 6a91cab79c23b47c48e35e95661dfbe81be943dd
Merge: c83bcc3 e1e62f9
Author: Nick Mathewson 
Date:   Mon Mar 21 13:26:04 2016 -0400

Merge branch 'maint-0.2.7'

 changes/bug17668   |  5 
 changes/bug17702   |  6 
 changes/bug18318_ed|  7 +
 changes/bug18368   |  5 
 src/or/dircollate.c| 78 ++
 src/or/dircollate.h| 24 ++--
 src/or/dirserv.c   | 75 +---
 src/or/dirserv.h   |  2 +-
 src/or/dirvote.c   | 35 ++
 src/or/dirvote.h   |  7 +++--
 src/or/networkstatus.c |  2 +-
 src/or/or.h| 13 +++--
 src/or/routerparse.c   | 25 
 13 files changed, 239 insertions(+), 45 deletions(-)

diff --cc src/or/or.h
index 4c295ab,431927c..301901e
--- a/src/or/or.h
+++ b/src/or/or.h
@@@ -2153,11 -2081,10 +2153,15 @@@ typedef struct 
 * tests for it. */
unsigned int needs_retest_if_added:1;
  
 +  /** True iff this router included "tunnelled-dir-server" in its descriptor,
 +   * implying it accepts tunnelled directory requests, or it advertised
 +   * dir_port > 0. */
 +  unsigned int supports_tunnelled_dir_requests:1;
 +
+   /** Used during voting to indicate that we should not include an entry for
+* this routerinfo. Used only during voting. */
+   unsigned int omit_from_vote:1;
+ 
  /** Tor can use this router for general positions in circuits; we got it
   * from a directory server as usual, or we're an authority and a server
   * uploaded it. */

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Enable ed25519 collator in voting.

2016-03-21 Thread nickm
commit 60efce445b17d4b4153e91527887873812f5599f
Author: Nick Mathewson 
Date:   Mon Feb 22 10:07:42 2016 -0500

Enable ed25519 collator in voting.

Previously, I had left in some debugging code with /*XXX*/ after it,
which nobody noticed.  Live and learn!  Next time I will use /*XXX
DO NOT COMMIT*/ or something.

We need to define a new consensus method for this; consensus method
21 shouldn't actually be used.

Fixes bug 17702; bugfix on 0.2.7.2-alpha.
---
 changes/bug17702| 6 ++
 src/or/dircollate.c | 2 +-
 src/or/dirvote.c| 7 +++
 src/or/dirvote.h| 7 ---
 4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/changes/bug17702 b/changes/bug17702
new file mode 100644
index 000..4fda36f
--- /dev/null
+++ b/changes/bug17702
@@ -0,0 +1,6 @@
+  o Major bugfixes:
+- Actually enable Ed25519-based directory collation.
+  Previously, the code had been written, but some debugging code that had
+  accidentally been left in the codebase made it stay turned off.
+  Fixes bug 17702; bugfix on 0.2.7.2-alpha.
+
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 4c812c4..f56aea8 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -159,7 +159,7 @@ dircollator_collate(dircollator_t *dc, int consensus_method)
   tor_assert(!dc->is_collated);
   dc->all_rsa_sha1_lst = smartlist_new();
 
-  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING + 10/*XXX*/)
+  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
 dircollator_collate_by_rsa(dc);
   else
 dircollator_collate_by_ed25519(dc);
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index d8e6ee2..be0635d 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -558,6 +558,13 @@ compute_consensus_method(smartlist_t *votes)
 static int
 consensus_method_is_supported(int method)
 {
+  if (method == MIN_METHOD_FOR_ED25519_ID_IN_MD) {
+/* This method was broken due to buggy code accidently left in
+ * dircollate.c; do not actually use it.
+ */
+return 0;
+  }
+
   return (method >= MIN_SUPPORTED_CONSENSUS_METHOD) &&
 (method <= MAX_SUPPORTED_CONSENSUS_METHOD);
 }
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index dca8540..50c2496 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -55,7 +55,7 @@
 #define MIN_SUPPORTED_CONSENSUS_METHOD 13
 
 /** The highest consensus method that we currently support. */
-#define MAX_SUPPORTED_CONSENSUS_METHOD 21
+#define MAX_SUPPORTED_CONSENSUS_METHOD 22
 
 /** Lowest consensus method where microdesc consensuses omit any entry
  * with no microdesc. */
@@ -87,11 +87,12 @@
 #define MIN_METHOD_FOR_GUARDFRACTION 20
 
 /** Lowest consensus method where authorities may include an "id" line for
- * ed25519 identities in microdescriptors. */
+ * ed25519 identities in microdescriptors. (Broken; see
+ * consensus_method_is_supported() for more info.) */
 #define MIN_METHOD_FOR_ED25519_ID_IN_MD 21
 /** Lowest consensus method where authorities vote on ed25519 ids and ensure
  * ed25519 id consistency. */
-#define MIN_METHOD_FOR_ED25519_ID_VOTING MIN_METHOD_FOR_ED25519_ID_IN_MD
+#define MIN_METHOD_FOR_ED25519_ID_VOTING 22
 
 /** Default bandwidth to clip unmeasured bandwidths to using method >=
  * MIN_METHOD_TO_CLIP_UNMEASURED_BW.  (This is not a consensus method; do not



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Fix another case of 17668: Add NoEdConsensus

2016-03-21 Thread nickm
commit fa07c60c67d69ff25c4e64172e3a38b29a2e6143
Author: Nick Mathewson 
Date:   Tue Feb 23 09:31:23 2016 -0500

Fix another case of 17668: Add NoEdConsensus

I had a half-built mechanism to track, during the voting process,
whether the Ed25519 value (or lack thereof) reflected a true
consensus among the authorities.  But we never actually inserted this
field in the consensus.

The key idea here is that we first attempt to match up votes by pairs
of , where  can be NULL if we're told that there is no
Ed key.  If this succeeds, then we can treat all those votes as 'a
consensus for Ed'.  And we can include all other votes with a
matching RSA key and no statement about Ed keys as being "also about
the same relay."

After that, we look for RSA keys we haven't actually found an entry
for yet, and see if there are enough votes for them, NOT considering
Ed keys.  If there are, we match them as before, but we treat them
as "not a consensus about ed".

When we include an entry in a consensus, if it does not reflect a
consensus about ed keys, then we include a new NoEdConsensus flag on
it.

This is all only for consensus method 22 or later.

Also see corresponding dir-spec patch.
---
 changes/bug17668|  5 +
 src/or/dircollate.c |  4 +++-
 src/or/dirvote.c| 28 
 src/or/or.h |  5 -
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/changes/bug17668 b/changes/bug17668
new file mode 100644
index 000..fa5c1c8
--- /dev/null
+++ b/changes/bug17668
@@ -0,0 +1,5 @@
+  o Major bugfixes (voting):
+- When collating votes by Ed25519 identities, authorities now
+  include a "NoEdConsensus" flag if the ed25519 value (or lack thereof)
+  for a server does not reflect the majority consensus. Related to bug
+  17668; bugfix on 0.2.7.2-alpha.
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index eeb0c24..ca8b7ca 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -81,6 +81,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
 {
   const char *id = vrs->status.identity_digest;
 
+  vrs->ed25519_reflects_consensus = 0;
+
   (void) vote;
   vote_routerstatus_t **vrs_lst = digestmap_get(dc->by_rsa_sha1, id);
   if (NULL == vrs_lst) {
@@ -92,7 +94,7 @@ dircollator_add_routerstatus(dircollator_t *dc,
 
   const uint8_t *ed = vrs->ed25519_id;
 
-  if (tor_mem_is_zero((char*)ed, DIGEST256_LEN))
+  if (! vrs->has_ed25519_listing)
 return;
 
   ddmap_entry_t search, *found;
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index be0635d..654d461 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -1242,6 +1242,9 @@ networkstatus_compute_consensus(smartlist_t *votes,
 smartlist_free(combined_server_versions);
 smartlist_free(combined_client_versions);
 
+if (consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING)
+  smartlist_add(flags, tor_strdup("NoEdConsensus"));
+
 smartlist_sort_strings(flags);
 smartlist_uniq_strings(flags);
 
@@ -1539,6 +1542,8 @@ networkstatus_compute_consensus(smartlist_t *votes,
   num_bandwidths = 0;
   num_mbws = 0;
   num_guardfraction_inputs = 0;
+  int ed_consensus = 0;
+  const uint8_t *ed_consensus_val = NULL;
 
   /* Okay, go through all the entries for this digest. */
   for (int voter_idx = 0; voter_idx < smartlist_len(votes); ++voter_idx) {
@@ -1580,6 +1585,17 @@ networkstatus_compute_consensus(smartlist_t *votes,
 
 if (rs->status.has_bandwidth)
   bandwidths_kb[num_bandwidths++] = rs->status.bandwidth_kb;
+
+/* Count number for which ed25519 is canonical. */
+if (rs->ed25519_reflects_consensus) {
+  ++ed_consensus;
+  if (ed_consensus_val) {
+tor_assert(fast_memeq(ed_consensus_val, rs->ed25519_id,
+  ED25519_PUBKEY_LEN));
+  } else {
+ed_consensus_val = rs->ed25519_id;
+  }
+}
   }
 
   /* We don't include this router at all unless more than half of
@@ -1587,6 +1603,14 @@ networkstatus_compute_consensus(smartlist_t *votes,
   if (n_listing <= total_authorities/2)
 continue;
 
+  if (ed_consensus > 0) {
+tor_assert(consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING);
+if (ed_consensus <= total_authorities / 2) {
+  log_warn(LD_BUG, "Not enough entries had ed_consensus set; how "
+   "can we have a consensus of %d?", ed_consensus);
+}
+  }
+
   /* The clangalyzer can't figure out that this will never be NULL
* if n_listing is at least 1 */
   tor_assert(current_rsa_id);
@@ -1640,6 +1664,10 @@ networkstatus_compute_consensus(smartlist_t *votes,
 } else if (!strcmp(fl, "Unnamed")) {
   if (is_unnamed)
 smartlist_add(chosen_flags, (char*)fl);
+} else if (!strcmp(fl, 

[tor-commits] [tor/master] Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

2016-03-21 Thread nickm
commit e1e62f9d5735da64dc1435d3a40db77f6229766a
Merge: 920e3d6 2f2fba8
Author: Nick Mathewson 
Date:   Mon Mar 21 13:25:12 2016 -0400

Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

 changes/bug17668   |  5 
 changes/bug17702   |  6 
 changes/bug18318_ed|  7 +
 changes/bug18368   |  5 
 src/or/dircollate.c| 78 ++
 src/or/dircollate.h| 24 ++--
 src/or/dirserv.c   | 75 +---
 src/or/dirserv.h   |  2 +-
 src/or/dirvote.c   | 35 ++
 src/or/dirvote.h   |  7 +++--
 src/or/networkstatus.c |  2 +-
 src/or/or.h| 13 +++--
 src/or/routerparse.c   | 25 
 13 files changed, 239 insertions(+), 45 deletions(-)



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Document has_ed25519_listing

2016-03-21 Thread nickm
commit 60ca3f358f80930778b12c9fcc8e3cf562b64e8e
Author: Nick Mathewson 
Date:   Tue Feb 23 08:13:39 2016 -0500

Document has_ed25519_listing
---
 src/or/or.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/or/or.h b/src/or/or.h
index b6d6ec0..b24b6a8 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2377,7 +2377,9 @@ typedef struct vote_routerstatus_t {
   char *version; /**< The version that the authority says this router is
   * running. */
   unsigned int has_measured_bw:1; /**< The vote had a measured bw */
-  unsigned int has_ed25519_listing:1; /** DOCDOC */
+  /** True iff the vote included an entry for ed25519 ID, or included
+   * "id ed25519 none" to indicate that there was no ed25519 ID. */
+  unsigned int has_ed25519_listing:1;
   unsigned int ed25519_reflects_consensus:1; /** DOCDOC */
   uint32_t measured_bw_kb; /**< Measured bandwidth (capacity) of the router */
   /** The hash or hashes that the authority claims this microdesc has. */



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Use nth consistently in dircollate.h.

2016-03-21 Thread nickm
commit 2f2fba8a918674b7187a5b497bb156b79aaec4e1
Author: Nick Mathewson 
Date:   Tue Mar 15 10:39:50 2016 -0400

Use nth consistently in dircollate.h.

Documentation-only patch. Issue 17668.T6.
---
 src/or/dircollate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 2f02512..43cf27f 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -22,8 +22,8 @@ static void dircollator_collate_by_ed25519(dircollator_t *dc);
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
-  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
-   * any) received for this digest pair from the n'th voter. */
+  /* The nth member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the nth voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/master] Fix another case of 17668: Add NoEdConsensus

2016-03-21 Thread nickm
commit fa07c60c67d69ff25c4e64172e3a38b29a2e6143
Author: Nick Mathewson 
Date:   Tue Feb 23 09:31:23 2016 -0500

Fix another case of 17668: Add NoEdConsensus

I had a half-built mechanism to track, during the voting process,
whether the Ed25519 value (or lack thereof) reflected a true
consensus among the authorities.  But we never actually inserted this
field in the consensus.

The key idea here is that we first attempt to match up votes by pairs
of , where  can be NULL if we're told that there is no
Ed key.  If this succeeds, then we can treat all those votes as 'a
consensus for Ed'.  And we can include all other votes with a
matching RSA key and no statement about Ed keys as being "also about
the same relay."

After that, we look for RSA keys we haven't actually found an entry
for yet, and see if there are enough votes for them, NOT considering
Ed keys.  If there are, we match them as before, but we treat them
as "not a consensus about ed".

When we include an entry in a consensus, if it does not reflect a
consensus about ed keys, then we include a new NoEdConsensus flag on
it.

This is all only for consensus method 22 or later.

Also see corresponding dir-spec patch.
---
 changes/bug17668|  5 +
 src/or/dircollate.c |  4 +++-
 src/or/dirvote.c| 28 
 src/or/or.h |  5 -
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/changes/bug17668 b/changes/bug17668
new file mode 100644
index 000..fa5c1c8
--- /dev/null
+++ b/changes/bug17668
@@ -0,0 +1,5 @@
+  o Major bugfixes (voting):
+- When collating votes by Ed25519 identities, authorities now
+  include a "NoEdConsensus" flag if the ed25519 value (or lack thereof)
+  for a server does not reflect the majority consensus. Related to bug
+  17668; bugfix on 0.2.7.2-alpha.
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index eeb0c24..ca8b7ca 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -81,6 +81,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
 {
   const char *id = vrs->status.identity_digest;
 
+  vrs->ed25519_reflects_consensus = 0;
+
   (void) vote;
   vote_routerstatus_t **vrs_lst = digestmap_get(dc->by_rsa_sha1, id);
   if (NULL == vrs_lst) {
@@ -92,7 +94,7 @@ dircollator_add_routerstatus(dircollator_t *dc,
 
   const uint8_t *ed = vrs->ed25519_id;
 
-  if (tor_mem_is_zero((char*)ed, DIGEST256_LEN))
+  if (! vrs->has_ed25519_listing)
 return;
 
   ddmap_entry_t search, *found;
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index be0635d..654d461 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -1242,6 +1242,9 @@ networkstatus_compute_consensus(smartlist_t *votes,
 smartlist_free(combined_server_versions);
 smartlist_free(combined_client_versions);
 
+if (consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING)
+  smartlist_add(flags, tor_strdup("NoEdConsensus"));
+
 smartlist_sort_strings(flags);
 smartlist_uniq_strings(flags);
 
@@ -1539,6 +1542,8 @@ networkstatus_compute_consensus(smartlist_t *votes,
   num_bandwidths = 0;
   num_mbws = 0;
   num_guardfraction_inputs = 0;
+  int ed_consensus = 0;
+  const uint8_t *ed_consensus_val = NULL;
 
   /* Okay, go through all the entries for this digest. */
   for (int voter_idx = 0; voter_idx < smartlist_len(votes); ++voter_idx) {
@@ -1580,6 +1585,17 @@ networkstatus_compute_consensus(smartlist_t *votes,
 
 if (rs->status.has_bandwidth)
   bandwidths_kb[num_bandwidths++] = rs->status.bandwidth_kb;
+
+/* Count number for which ed25519 is canonical. */
+if (rs->ed25519_reflects_consensus) {
+  ++ed_consensus;
+  if (ed_consensus_val) {
+tor_assert(fast_memeq(ed_consensus_val, rs->ed25519_id,
+  ED25519_PUBKEY_LEN));
+  } else {
+ed_consensus_val = rs->ed25519_id;
+  }
+}
   }
 
   /* We don't include this router at all unless more than half of
@@ -1587,6 +1603,14 @@ networkstatus_compute_consensus(smartlist_t *votes,
   if (n_listing <= total_authorities/2)
 continue;
 
+  if (ed_consensus > 0) {
+tor_assert(consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING);
+if (ed_consensus <= total_authorities / 2) {
+  log_warn(LD_BUG, "Not enough entries had ed_consensus set; how "
+   "can we have a consensus of %d?", ed_consensus);
+}
+  }
+
   /* The clangalyzer can't figure out that this will never be NULL
* if n_listing is at least 1 */
   tor_assert(current_rsa_id);
@@ -1640,6 +1664,10 @@ networkstatus_compute_consensus(smartlist_t *votes,
 } else if (!strcmp(fl, "Unnamed")) {
   if (is_unnamed)
 smartlist_add(chosen_flags, (char*)fl);
+} else if (!strcmp(fl, 

[tor-commits] [tor/master] Fix log message subjects in networkstatus_parse_vote_from_string()

2016-03-21 Thread nickm
commit c20e34e1894bed07982fe64d60a1b3fe9403d269
Author: Nick Mathewson 
Date:   Mon Feb 22 10:59:27 2016 -0500

Fix log message subjects in networkstatus_parse_vote_from_string()

Some of these messages called the thing being parsed a "vote" whether
it is a vote or a consensus.

Fixes bug 18368.
---
 changes/bug18368 |  5 +
 src/or/routerparse.c | 25 -
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/changes/bug18368 b/changes/bug18368
new file mode 100644
index 000..17218d4
--- /dev/null
+++ b/changes/bug18368
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+- When logging information about an unparseable networkstatus vote or
+  consensus, do not say "vote" when we mean consensus. Fixes bug
+  18368; bugfix on 0.2.0.8-alpha.
+
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index f898ef8..6b6e21d 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -2862,7 +2862,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   (ns_type == NS_TYPE_CONSENSUS) ?
   networkstatus_consensus_token_table :
   networkstatus_token_table, 0)) {
-log_warn(LD_DIR, "Error tokenizing network-status vote header");
+log_warn(LD_DIR, "Error tokenizing network-status header");
 goto err;
   }
 
@@ -3085,7 +3085,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   base16_decode(voter->identity_digest, sizeof(voter->identity_digest),
 tok->args[1], HEX_DIGEST_LEN) < 0) {
 log_warn(LD_DIR, "Error decoding identity digest %s in "
- "network-status vote.", escaped(tok->args[1]));
+ "network-status document.", escaped(tok->args[1]));
 goto err;
   }
   if (ns->type != NS_TYPE_CONSENSUS &&
@@ -3144,7 +3144,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 voter = NULL;
   }
   if (smartlist_len(ns->voters) == 0) {
-log_warn(LD_DIR, "Missing dir-source elements in a vote networkstatus.");
+log_warn(LD_DIR, "Missing dir-source elements in a networkstatus.");
 goto err;
   } else if (ns->type != NS_TYPE_CONSENSUS && smartlist_len(ns->voters) != 1) {
 log_warn(LD_DIR, "Too many dir-source elements in a vote networkstatus.");
@@ -3205,8 +3205,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 }
 if (fast_memcmp(rs1->identity_digest, rs2->identity_digest, DIGEST_LEN)
 >= 0) {
-  log_warn(LD_DIR, "Vote networkstatus entries not sorted by identity "
-   "digest");
+  log_warn(LD_DIR, "Networkstatus entries not sorted by identity digest");
   goto err;
 }
   }
@@ -3319,12 +3318,12 @@ networkstatus_parse_vote_from_string(const char *s, 
const char **eos_out,
 base16_decode(declared_identity, sizeof(declared_identity),
   id_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared identity %s in "
-   "network-status vote.", escaped(id_hexdigest));
+   "network-status document.", escaped(id_hexdigest));
   goto err;
 }
 if (!(v = networkstatus_get_voter_by_id(ns, declared_identity))) {
-  log_warn(LD_DIR, "ID on signature on network-status vote does not match "
-   "any declared directory source.");
+  log_warn(LD_DIR, "ID on signature on network-status document does "
+   "not match any declared directory source.");
   goto err;
 }
 sig = tor_malloc_zero(sizeof(document_signature_t));
@@ -3334,7 +,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 base16_decode(sig->signing_key_digest, sizeof(sig->signing_key_digest),
   sk_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared signing key digest %s in "
-   "network-status vote.", escaped(sk_hexdigest));
+   "network-status document.", escaped(sk_hexdigest));
   tor_free(sig);
   goto err;
 }
@@ -3353,8 +3352,8 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   /* We already parsed a vote with this algorithm from this voter. Use the
  first one. */
   log_fn(LOG_PROTOCOL_WARN, LD_DIR, "We received a networkstatus "
- "that contains two votes from the same voter with the same "
- "algorithm. Ignoring the second vote.");
+ "that contains two signatures from the same voter with the same "
+ "algorithm. Ignoring the second signature.");
   tor_free(sig);
   continue;
 }
@@ -3362,7 +3361,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 if (ns->type != NS_TYPE_CONSENSUS) {
   if (check_signature_token(ns_digests.d[DIGEST_SHA1], DIGEST_LEN,

[tor-commits] [tor/release-0.2.7] In routers_make_ed_keys_unique, break ties for published_on

2016-03-21 Thread nickm
commit b24f15a9a16acc8009c25823a127f3090b9b2edc
Author: Nick Mathewson 
Date:   Tue Mar 15 10:34:05 2016 -0400

In routers_make_ed_keys_unique, break ties for published_on

This ensures that if we can't use published_on to decide an ed,rsa
mapping, we at least decide deterministically.

Resolves 17668.T3
---
 src/or/dirserv.c | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index ab8ddfe..ae67e8e 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2124,7 +2124,8 @@ get_possible_sybil_list(const smartlist_t *routers)
 }
 
 /** If there are entries in routers with exactly the same ed25519 keys,
- * remove the older one.  May alter the order of the list. */
+ * remove the older one.  If they are exactly the same age, remove the one
+ * with the greater descriptor digest. May alter the order of the list. */
 static void
 routers_make_ed_keys_unique(smartlist_t *routers)
 {
@@ -2139,7 +2140,12 @@ routers_make_ed_keys_unique(smartlist_t *routers)
 if ((ri2 = digest256map_get(by_ed_key, pk))) {
   /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
* one has the earlier published_on. */
-  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+  const time_t ri_pub = ri->cache_info.published_on;
+  const time_t ri2_pub = ri2->cache_info.published_on;
+  if (ri2_pub < ri_pub ||
+  (ri2_pub == ri_pub &&
+   memcmp(ri->cache_info.signed_descriptor_digest,
+  ri2->cache_info.signed_descriptor_digest,DIGEST_LEN)<0)) {
 digest256map_set(by_ed_key, pk, ri);
 ri2->omit_from_vote = 1;
   } else {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Document dircollate.c (and remove an unused global)

2016-03-21 Thread nickm
commit 6182e3462875d81dc3501bf0f1ad04fb658c2838
Author: Nick Mathewson 
Date:   Mon Feb 22 10:39:42 2016 -0500

Document dircollate.c (and remove an unused global)
---
 src/or/dircollate.c | 70 ++---
 src/or/dircollate.h | 24 +++---
 2 files changed, 87 insertions(+), 7 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index f56aea8..eeb0c24 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -17,20 +17,24 @@
 static void dircollator_collate_by_rsa(dircollator_t *dc);
 static void dircollator_collate_by_ed25519(dircollator_t *dc);
 
+/** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
+ * RSA SHA1 digest) to an array of vote_routerstatus_t. */
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
+  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the n'th voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 
-double_digest_map_t *by_both_ids;
-
+/** Release all storage held by e. */
 static void
 ddmap_entry_free(ddmap_entry_t *e)
 {
   tor_free(e);
 }
 
+/** Return a new empty ddmap_entry, with n_votes elements in vrs_list. 
*/
 static ddmap_entry_t *
 ddmap_entry_new(int n_votes)
 {
@@ -50,6 +54,8 @@ ddmap_entry_eq(const ddmap_entry_t *a, const ddmap_entry_t *b)
   return fast_memeq(a->d, b->d, sizeof(a->d));
 }
 
+/** Record the RSA identity of ent as rsa_sha1, and the
+ * ed25519 identity as ed25519. */
 static void
 ddmap_entry_set_digests(ddmap_entry_t *ent,
 const uint8_t *rsa_sha1,
@@ -63,6 +69,10 @@ HT_PROTOTYPE(double_digest_map, ddmap_entry_s, node, 
ddmap_entry_hash,
  ddmap_entry_eq);
 HT_GENERATE2(double_digest_map, ddmap_entry_s, node, ddmap_entry_hash,
  ddmap_entry_eq, 0.6, tor_reallocarray, tor_free_);
+
+/** Helper: add a single vote_routerstatus_t vrs to the collator
+ * dc, indexing it by its RSA key digest, and by the 2-tuple of
+ * its RSA key digest and Ed25519 key.  */
 static void
 dircollator_add_routerstatus(dircollator_t *dc,
  int vote_num,
@@ -99,6 +109,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
   vrs_lst[vote_num] = vrs;
 }
 
+/** Create and return a new dircollator object to use when collating
+ * n_votes out of a total of n_authorities. */
 dircollator_t *
 dircollator_new(int n_votes, int n_authorities)
 {
@@ -115,6 +127,7 @@ dircollator_new(int n_votes, int n_authorities)
   return dc;
 }
 
+/** Release all storage held by dc. */
 void
 dircollator_free(dircollator_t *dc)
 {
@@ -139,6 +152,10 @@ dircollator_free(dircollator_t *dc)
   tor_free(dc);
 }
 
+/** Add a single vote v to a dircollator dc.  This function must
+ * be called exactly once for each vote to be used in the consensus. It may
+ * only be called before dircollator_collate().
+ */
 void
 dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
 {
@@ -153,6 +170,9 @@ dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
   } SMARTLIST_FOREACH_END(vrs);
 }
 
+/** Sort the entries in dc according to consensus_method, so
+ * that the consensus process can iterate over them with
+ * dircollator_n_routers() and dircollator_get_votes_for_router(). */
 void
 dircollator_collate(dircollator_t *dc, int consensus_method)
 {
@@ -168,6 +188,15 @@ dircollator_collate(dircollator_t *dc, int 
consensus_method)
   dc->is_collated = 1;
 }
 
+/**
+ * Collation function for RSA-only consensuses: collate the votes for each
+ * entry in dc by their RSA keys.
+ *
+ * The rule is:
+ *If an RSA identity key is listed by more than half of the authorities,
+ *include that identity, and treat all descriptors with that RSA identity
+ *as describing the same router.
+ */
 static void
 dircollator_collate_by_rsa(dircollator_t *dc)
 {
@@ -189,6 +218,20 @@ dircollator_collate_by_rsa(dircollator_t *dc)
   dc->by_collated_rsa_sha1 = dc->by_rsa_sha1;
 }
 
+/**
+ * Collation function for ed25519 consensuses: collate the votes for each
+ * entry in dc by ed25519 key and by RSA key.
+ *
+ * The rule is, approximately:
+ *If a  identity is listed by more than half of authorities,
+ *include it.  And include all -only votes about that node as
+ *matching.
+ *
+ *Otherwise, if an <*,rsa> or  identity is listed by more than
+ *half of the authorities, and no  pair for the same RSA key
+ *has been already been included based on the rule above, include
+ *that RSA identity.
+ */
 static void
 dircollator_collate_by_ed25519(dircollator_t *dc)
 {
@@ -197,6 +240,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 
   ddmap_entry_t **iter;
 
+  /* Go over all  pairs */
   HT_FOREACH(iter, double_digest_map, >by_both_ids) {
 ddmap_entry_t *ent = *iter;
 int n = 0, i;
@@ -205,9 +249,13 @@ 

[tor-commits] [tor/master] Assert that dircollator is collated when we're reading its output.

2016-03-21 Thread nickm
commit beef6ed45160f096815b4ea840ff671fb484d1da
Author: Nick Mathewson 
Date:   Tue Mar 15 10:24:18 2016 -0400

Assert that dircollator is collated when we're reading its output.

Fix for 17668.S2.
---
 src/or/dircollate.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index ca8b7ca..2f02512 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -303,6 +303,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 int
 dircollator_n_routers(dircollator_t *dc)
 {
+  tor_assert(dc->is_collated);
   return smartlist_len(dc->all_rsa_sha1_lst);
 }
 
@@ -317,6 +318,7 @@ dircollator_n_routers(dircollator_t *dc)
 vote_routerstatus_t **
 dircollator_get_votes_for_router(dircollator_t *dc, int idx)
 {
+  tor_assert(dc->is_collated);
   tor_assert(idx < smartlist_len(dc->all_rsa_sha1_lst));
   return digestmap_get(dc->by_collated_rsa_sha1,
smartlist_get(dc->all_rsa_sha1_lst, idx));



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/release-0.2.7] Fix log message subjects in networkstatus_parse_vote_from_string()

2016-03-21 Thread nickm
commit c20e34e1894bed07982fe64d60a1b3fe9403d269
Author: Nick Mathewson 
Date:   Mon Feb 22 10:59:27 2016 -0500

Fix log message subjects in networkstatus_parse_vote_from_string()

Some of these messages called the thing being parsed a "vote" whether
it is a vote or a consensus.

Fixes bug 18368.
---
 changes/bug18368 |  5 +
 src/or/routerparse.c | 25 -
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/changes/bug18368 b/changes/bug18368
new file mode 100644
index 000..17218d4
--- /dev/null
+++ b/changes/bug18368
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+- When logging information about an unparseable networkstatus vote or
+  consensus, do not say "vote" when we mean consensus. Fixes bug
+  18368; bugfix on 0.2.0.8-alpha.
+
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index f898ef8..6b6e21d 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -2862,7 +2862,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   (ns_type == NS_TYPE_CONSENSUS) ?
   networkstatus_consensus_token_table :
   networkstatus_token_table, 0)) {
-log_warn(LD_DIR, "Error tokenizing network-status vote header");
+log_warn(LD_DIR, "Error tokenizing network-status header");
 goto err;
   }
 
@@ -3085,7 +3085,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   base16_decode(voter->identity_digest, sizeof(voter->identity_digest),
 tok->args[1], HEX_DIGEST_LEN) < 0) {
 log_warn(LD_DIR, "Error decoding identity digest %s in "
- "network-status vote.", escaped(tok->args[1]));
+ "network-status document.", escaped(tok->args[1]));
 goto err;
   }
   if (ns->type != NS_TYPE_CONSENSUS &&
@@ -3144,7 +3144,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 voter = NULL;
   }
   if (smartlist_len(ns->voters) == 0) {
-log_warn(LD_DIR, "Missing dir-source elements in a vote networkstatus.");
+log_warn(LD_DIR, "Missing dir-source elements in a networkstatus.");
 goto err;
   } else if (ns->type != NS_TYPE_CONSENSUS && smartlist_len(ns->voters) != 1) {
 log_warn(LD_DIR, "Too many dir-source elements in a vote networkstatus.");
@@ -3205,8 +3205,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 }
 if (fast_memcmp(rs1->identity_digest, rs2->identity_digest, DIGEST_LEN)
 >= 0) {
-  log_warn(LD_DIR, "Vote networkstatus entries not sorted by identity "
-   "digest");
+  log_warn(LD_DIR, "Networkstatus entries not sorted by identity digest");
   goto err;
 }
   }
@@ -3319,12 +3318,12 @@ networkstatus_parse_vote_from_string(const char *s, 
const char **eos_out,
 base16_decode(declared_identity, sizeof(declared_identity),
   id_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared identity %s in "
-   "network-status vote.", escaped(id_hexdigest));
+   "network-status document.", escaped(id_hexdigest));
   goto err;
 }
 if (!(v = networkstatus_get_voter_by_id(ns, declared_identity))) {
-  log_warn(LD_DIR, "ID on signature on network-status vote does not match "
-   "any declared directory source.");
+  log_warn(LD_DIR, "ID on signature on network-status document does "
+   "not match any declared directory source.");
   goto err;
 }
 sig = tor_malloc_zero(sizeof(document_signature_t));
@@ -3334,7 +,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 base16_decode(sig->signing_key_digest, sizeof(sig->signing_key_digest),
   sk_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared signing key digest %s in "
-   "network-status vote.", escaped(sk_hexdigest));
+   "network-status document.", escaped(sk_hexdigest));
   tor_free(sig);
   goto err;
 }
@@ -3353,8 +3352,8 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   /* We already parsed a vote with this algorithm from this voter. Use the
  first one. */
   log_fn(LOG_PROTOCOL_WARN, LD_DIR, "We received a networkstatus "
- "that contains two votes from the same voter with the same "
- "algorithm. Ignoring the second vote.");
+ "that contains two signatures from the same voter with the same "
+ "algorithm. Ignoring the second signature.");
   tor_free(sig);
   continue;
 }
@@ -3362,7 +3361,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 if (ns->type != NS_TYPE_CONSENSUS) {
   if (check_signature_token(ns_digests.d[DIGEST_SHA1], DIGEST_LEN,

[tor-commits] [tor/master] Document dircollate.c (and remove an unused global)

2016-03-21 Thread nickm
commit 6182e3462875d81dc3501bf0f1ad04fb658c2838
Author: Nick Mathewson 
Date:   Mon Feb 22 10:39:42 2016 -0500

Document dircollate.c (and remove an unused global)
---
 src/or/dircollate.c | 70 ++---
 src/or/dircollate.h | 24 +++---
 2 files changed, 87 insertions(+), 7 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index f56aea8..eeb0c24 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -17,20 +17,24 @@
 static void dircollator_collate_by_rsa(dircollator_t *dc);
 static void dircollator_collate_by_ed25519(dircollator_t *dc);
 
+/** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
+ * RSA SHA1 digest) to an array of vote_routerstatus_t. */
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
+  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the n'th voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 
-double_digest_map_t *by_both_ids;
-
+/** Release all storage held by e. */
 static void
 ddmap_entry_free(ddmap_entry_t *e)
 {
   tor_free(e);
 }
 
+/** Return a new empty ddmap_entry, with n_votes elements in vrs_list. 
*/
 static ddmap_entry_t *
 ddmap_entry_new(int n_votes)
 {
@@ -50,6 +54,8 @@ ddmap_entry_eq(const ddmap_entry_t *a, const ddmap_entry_t *b)
   return fast_memeq(a->d, b->d, sizeof(a->d));
 }
 
+/** Record the RSA identity of ent as rsa_sha1, and the
+ * ed25519 identity as ed25519. */
 static void
 ddmap_entry_set_digests(ddmap_entry_t *ent,
 const uint8_t *rsa_sha1,
@@ -63,6 +69,10 @@ HT_PROTOTYPE(double_digest_map, ddmap_entry_s, node, 
ddmap_entry_hash,
  ddmap_entry_eq);
 HT_GENERATE2(double_digest_map, ddmap_entry_s, node, ddmap_entry_hash,
  ddmap_entry_eq, 0.6, tor_reallocarray, tor_free_);
+
+/** Helper: add a single vote_routerstatus_t vrs to the collator
+ * dc, indexing it by its RSA key digest, and by the 2-tuple of
+ * its RSA key digest and Ed25519 key.  */
 static void
 dircollator_add_routerstatus(dircollator_t *dc,
  int vote_num,
@@ -99,6 +109,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
   vrs_lst[vote_num] = vrs;
 }
 
+/** Create and return a new dircollator object to use when collating
+ * n_votes out of a total of n_authorities. */
 dircollator_t *
 dircollator_new(int n_votes, int n_authorities)
 {
@@ -115,6 +127,7 @@ dircollator_new(int n_votes, int n_authorities)
   return dc;
 }
 
+/** Release all storage held by dc. */
 void
 dircollator_free(dircollator_t *dc)
 {
@@ -139,6 +152,10 @@ dircollator_free(dircollator_t *dc)
   tor_free(dc);
 }
 
+/** Add a single vote v to a dircollator dc.  This function must
+ * be called exactly once for each vote to be used in the consensus. It may
+ * only be called before dircollator_collate().
+ */
 void
 dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
 {
@@ -153,6 +170,9 @@ dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
   } SMARTLIST_FOREACH_END(vrs);
 }
 
+/** Sort the entries in dc according to consensus_method, so
+ * that the consensus process can iterate over them with
+ * dircollator_n_routers() and dircollator_get_votes_for_router(). */
 void
 dircollator_collate(dircollator_t *dc, int consensus_method)
 {
@@ -168,6 +188,15 @@ dircollator_collate(dircollator_t *dc, int 
consensus_method)
   dc->is_collated = 1;
 }
 
+/**
+ * Collation function for RSA-only consensuses: collate the votes for each
+ * entry in dc by their RSA keys.
+ *
+ * The rule is:
+ *If an RSA identity key is listed by more than half of the authorities,
+ *include that identity, and treat all descriptors with that RSA identity
+ *as describing the same router.
+ */
 static void
 dircollator_collate_by_rsa(dircollator_t *dc)
 {
@@ -189,6 +218,20 @@ dircollator_collate_by_rsa(dircollator_t *dc)
   dc->by_collated_rsa_sha1 = dc->by_rsa_sha1;
 }
 
+/**
+ * Collation function for ed25519 consensuses: collate the votes for each
+ * entry in dc by ed25519 key and by RSA key.
+ *
+ * The rule is, approximately:
+ *If a  identity is listed by more than half of authorities,
+ *include it.  And include all -only votes about that node as
+ *matching.
+ *
+ *Otherwise, if an <*,rsa> or  identity is listed by more than
+ *half of the authorities, and no  pair for the same RSA key
+ *has been already been included based on the rule above, include
+ *that RSA identity.
+ */
 static void
 dircollator_collate_by_ed25519(dircollator_t *dc)
 {
@@ -197,6 +240,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 
   ddmap_entry_t **iter;
 
+  /* Go over all  pairs */
   HT_FOREACH(iter, double_digest_map, >by_both_ids) {
 ddmap_entry_t *ent = *iter;
 int n = 0, i;
@@ -205,9 +249,13 @@ 

[tor-commits] [tor/maint-0.2.7] Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

2016-03-21 Thread nickm
commit e1e62f9d5735da64dc1435d3a40db77f6229766a
Merge: 920e3d6 2f2fba8
Author: Nick Mathewson 
Date:   Mon Mar 21 13:25:12 2016 -0400

Merge branch 'ed25519_voting_fixes_squashed' into maint-0.2.7

 changes/bug17668   |  5 
 changes/bug17702   |  6 
 changes/bug18318_ed|  7 +
 changes/bug18368   |  5 
 src/or/dircollate.c| 78 ++
 src/or/dircollate.h| 24 ++--
 src/or/dirserv.c   | 75 +---
 src/or/dirserv.h   |  2 +-
 src/or/dirvote.c   | 35 ++
 src/or/dirvote.h   |  7 +++--
 src/or/networkstatus.c |  2 +-
 src/or/or.h| 13 +++--
 src/or/routerparse.c   | 25 
 13 files changed, 239 insertions(+), 45 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.2.7] After we strip out duplicate entries from 'routers', don't use 'rl'.

2016-03-21 Thread nickm
commit 48f8229504a00085676a737d9b519548ffc9d145
Author: Nick Mathewson 
Date:   Tue Mar 15 10:15:59 2016 -0400

After we strip out duplicate entries from 'routers', don't use 'rl'.

We've got to make sure that every single subsequent calculation in
dirserv_generate_networkstatus_vote_obj() are based on the list of
routerinfo_t *after* we've removed possible duplicates, not before.
Fortunately, none of the functions that were taking a routerlist_t
as an argument were actually using any fields other than this list
of routers.

Resolves issue 18318.DG3.
---
 src/or/dirserv.c   | 30 ++
 src/or/dirserv.h   |  2 +-
 src/or/networkstatus.c |  2 +-
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 016514f..ab8ddfe 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1422,7 +1422,7 @@ router_counts_toward_thresholds(const node_t *node, 
time_t now,
  *
  * Also, set the is_exit flag of each router appropriately. */
 static void
-dirserv_compute_performance_thresholds(routerlist_t *rl,
+dirserv_compute_performance_thresholds(const smartlist_t *routers,
digestmap_t *omit_as_sybil)
 {
   int n_active, n_active_nonexit, n_familiar;
@@ -1450,18 +1450,18 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
* sort them and use that to compute thresholds. */
   n_active = n_active_nonexit = 0;
   /* Uptime for every active router. */
-  uptimes = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  uptimes = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active router. */
-  bandwidths_kb = tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+  bandwidths_kb = tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Bandwidth for every active non-exit router. */
   bandwidths_excluding_exits_kb =
-tor_calloc(smartlist_len(rl->routers), sizeof(uint32_t));
+tor_calloc(smartlist_len(routers), sizeof(uint32_t));
   /* Weighted mean time between failure for each active router. */
-  mtbfs = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  mtbfs = tor_calloc(smartlist_len(routers), sizeof(double));
   /* Time-known for each active router. */
-  tks = tor_calloc(smartlist_len(rl->routers), sizeof(long));
+  tks = tor_calloc(smartlist_len(routers), sizeof(long));
   /* Weighted fractional uptime for each active router. */
-  wfus = tor_calloc(smartlist_len(rl->routers), sizeof(double));
+  wfus = tor_calloc(smartlist_len(routers), sizeof(double));
 
   nodelist_assert_ok();
 
@@ -1596,11 +1596,11 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
  * networkstatus_getinfo_by_purpose().
  */
 void
-dirserv_compute_bridge_flag_thresholds(routerlist_t *rl)
+dirserv_compute_bridge_flag_thresholds(const smartlist_t *routers)
 {
 
   digestmap_t *omit_as_sybil = digestmap_new();
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
   digestmap_free(omit_as_sybil, NULL);
 }
 
@@ -1753,16 +1753,13 @@ dirserv_get_bandwidth_for_router_kb(const routerinfo_t 
*ri)
  * how many measured bandwidths we know.  This is used to decide whether we
  * ever trust advertised bandwidths for purposes of assigning flags. */
 static void
-dirserv_count_measured_bws(routerlist_t *rl)
+dirserv_count_measured_bws(const smartlist_t *routers)
 {
   /* Initialize this first */
   routers_with_measured_bw = 0;
 
-  tor_assert(rl);
-  tor_assert(rl->routers);
-
   /* Iterate over the routerlist and count measured bandwidths */
-  SMARTLIST_FOREACH_BEGIN(rl->routers, routerinfo_t *, ri) {
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
 /* Check if we know a measured bandwidth for this one */
 if (dirserv_has_measured_bw(ri->cache_info.identity_digest)) {
   ++routers_with_measured_bw;
@@ -2854,6 +2851,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
   routers_make_ed_keys_unique(routers);
+  /* After this point, don't use rl->routers; use 'routers' instead. */
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
@@ -2864,9 +2862,9 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   /* Count how many have measured bandwidths so we know how to assign flags;
* this must come before dirserv_compute_performance_thresholds() */
-  dirserv_count_measured_bws(rl);
+  dirserv_count_measured_bws(routers);
 
-  dirserv_compute_performance_thresholds(rl, omit_as_sybil);
+  dirserv_compute_performance_thresholds(routers, omit_as_sybil);
 
   routerstatuses = smartlist_new();
   microdescriptors = smartlist_new();
diff --git a/src/or/dirserv.h b/src/or/dirserv.h
index d07339b..b16a67c 100644
--- a/src/or/dirserv.h
+++ 

[tor-commits] [tor/maint-0.2.7] Document dircollate.c (and remove an unused global)

2016-03-21 Thread nickm
commit 6182e3462875d81dc3501bf0f1ad04fb658c2838
Author: Nick Mathewson 
Date:   Mon Feb 22 10:39:42 2016 -0500

Document dircollate.c (and remove an unused global)
---
 src/or/dircollate.c | 70 ++---
 src/or/dircollate.h | 24 +++---
 2 files changed, 87 insertions(+), 7 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index f56aea8..eeb0c24 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -17,20 +17,24 @@
 static void dircollator_collate_by_rsa(dircollator_t *dc);
 static void dircollator_collate_by_ed25519(dircollator_t *dc);
 
+/** Hashtable entry mapping a pair of digests (actually an ed25519 key and an
+ * RSA SHA1 digest) to an array of vote_routerstatus_t. */
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
+  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the n'th voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 
-double_digest_map_t *by_both_ids;
-
+/** Release all storage held by e. */
 static void
 ddmap_entry_free(ddmap_entry_t *e)
 {
   tor_free(e);
 }
 
+/** Return a new empty ddmap_entry, with n_votes elements in vrs_list. 
*/
 static ddmap_entry_t *
 ddmap_entry_new(int n_votes)
 {
@@ -50,6 +54,8 @@ ddmap_entry_eq(const ddmap_entry_t *a, const ddmap_entry_t *b)
   return fast_memeq(a->d, b->d, sizeof(a->d));
 }
 
+/** Record the RSA identity of ent as rsa_sha1, and the
+ * ed25519 identity as ed25519. */
 static void
 ddmap_entry_set_digests(ddmap_entry_t *ent,
 const uint8_t *rsa_sha1,
@@ -63,6 +69,10 @@ HT_PROTOTYPE(double_digest_map, ddmap_entry_s, node, 
ddmap_entry_hash,
  ddmap_entry_eq);
 HT_GENERATE2(double_digest_map, ddmap_entry_s, node, ddmap_entry_hash,
  ddmap_entry_eq, 0.6, tor_reallocarray, tor_free_);
+
+/** Helper: add a single vote_routerstatus_t vrs to the collator
+ * dc, indexing it by its RSA key digest, and by the 2-tuple of
+ * its RSA key digest and Ed25519 key.  */
 static void
 dircollator_add_routerstatus(dircollator_t *dc,
  int vote_num,
@@ -99,6 +109,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
   vrs_lst[vote_num] = vrs;
 }
 
+/** Create and return a new dircollator object to use when collating
+ * n_votes out of a total of n_authorities. */
 dircollator_t *
 dircollator_new(int n_votes, int n_authorities)
 {
@@ -115,6 +127,7 @@ dircollator_new(int n_votes, int n_authorities)
   return dc;
 }
 
+/** Release all storage held by dc. */
 void
 dircollator_free(dircollator_t *dc)
 {
@@ -139,6 +152,10 @@ dircollator_free(dircollator_t *dc)
   tor_free(dc);
 }
 
+/** Add a single vote v to a dircollator dc.  This function must
+ * be called exactly once for each vote to be used in the consensus. It may
+ * only be called before dircollator_collate().
+ */
 void
 dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
 {
@@ -153,6 +170,9 @@ dircollator_add_vote(dircollator_t *dc, networkstatus_t *v)
   } SMARTLIST_FOREACH_END(vrs);
 }
 
+/** Sort the entries in dc according to consensus_method, so
+ * that the consensus process can iterate over them with
+ * dircollator_n_routers() and dircollator_get_votes_for_router(). */
 void
 dircollator_collate(dircollator_t *dc, int consensus_method)
 {
@@ -168,6 +188,15 @@ dircollator_collate(dircollator_t *dc, int 
consensus_method)
   dc->is_collated = 1;
 }
 
+/**
+ * Collation function for RSA-only consensuses: collate the votes for each
+ * entry in dc by their RSA keys.
+ *
+ * The rule is:
+ *If an RSA identity key is listed by more than half of the authorities,
+ *include that identity, and treat all descriptors with that RSA identity
+ *as describing the same router.
+ */
 static void
 dircollator_collate_by_rsa(dircollator_t *dc)
 {
@@ -189,6 +218,20 @@ dircollator_collate_by_rsa(dircollator_t *dc)
   dc->by_collated_rsa_sha1 = dc->by_rsa_sha1;
 }
 
+/**
+ * Collation function for ed25519 consensuses: collate the votes for each
+ * entry in dc by ed25519 key and by RSA key.
+ *
+ * The rule is, approximately:
+ *If a  identity is listed by more than half of authorities,
+ *include it.  And include all -only votes about that node as
+ *matching.
+ *
+ *Otherwise, if an <*,rsa> or  identity is listed by more than
+ *half of the authorities, and no  pair for the same RSA key
+ *has been already been included based on the rule above, include
+ *that RSA identity.
+ */
 static void
 dircollator_collate_by_ed25519(dircollator_t *dc)
 {
@@ -197,6 +240,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 
   ddmap_entry_t **iter;
 
+  /* Go over all  pairs */
   HT_FOREACH(iter, double_digest_map, >by_both_ids) {
 ddmap_entry_t *ent = *iter;
 int n = 0, i;
@@ -205,9 +249,13 @@ 

[tor-commits] [tor/maint-0.2.7] Assert that dircollator is collated when we're reading its output.

2016-03-21 Thread nickm
commit beef6ed45160f096815b4ea840ff671fb484d1da
Author: Nick Mathewson 
Date:   Tue Mar 15 10:24:18 2016 -0400

Assert that dircollator is collated when we're reading its output.

Fix for 17668.S2.
---
 src/or/dircollate.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index ca8b7ca..2f02512 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -303,6 +303,7 @@ dircollator_collate_by_ed25519(dircollator_t *dc)
 int
 dircollator_n_routers(dircollator_t *dc)
 {
+  tor_assert(dc->is_collated);
   return smartlist_len(dc->all_rsa_sha1_lst);
 }
 
@@ -317,6 +318,7 @@ dircollator_n_routers(dircollator_t *dc)
 vote_routerstatus_t **
 dircollator_get_votes_for_router(dircollator_t *dc, int idx)
 {
+  tor_assert(dc->is_collated);
   tor_assert(idx < smartlist_len(dc->all_rsa_sha1_lst));
   return digestmap_get(dc->by_collated_rsa_sha1,
smartlist_get(dc->all_rsa_sha1_lst, idx));



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.2.7] Fix another case of 17668: Add NoEdConsensus

2016-03-21 Thread nickm
commit fa07c60c67d69ff25c4e64172e3a38b29a2e6143
Author: Nick Mathewson 
Date:   Tue Feb 23 09:31:23 2016 -0500

Fix another case of 17668: Add NoEdConsensus

I had a half-built mechanism to track, during the voting process,
whether the Ed25519 value (or lack thereof) reflected a true
consensus among the authorities.  But we never actually inserted this
field in the consensus.

The key idea here is that we first attempt to match up votes by pairs
of , where  can be NULL if we're told that there is no
Ed key.  If this succeeds, then we can treat all those votes as 'a
consensus for Ed'.  And we can include all other votes with a
matching RSA key and no statement about Ed keys as being "also about
the same relay."

After that, we look for RSA keys we haven't actually found an entry
for yet, and see if there are enough votes for them, NOT considering
Ed keys.  If there are, we match them as before, but we treat them
as "not a consensus about ed".

When we include an entry in a consensus, if it does not reflect a
consensus about ed keys, then we include a new NoEdConsensus flag on
it.

This is all only for consensus method 22 or later.

Also see corresponding dir-spec patch.
---
 changes/bug17668|  5 +
 src/or/dircollate.c |  4 +++-
 src/or/dirvote.c| 28 
 src/or/or.h |  5 -
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/changes/bug17668 b/changes/bug17668
new file mode 100644
index 000..fa5c1c8
--- /dev/null
+++ b/changes/bug17668
@@ -0,0 +1,5 @@
+  o Major bugfixes (voting):
+- When collating votes by Ed25519 identities, authorities now
+  include a "NoEdConsensus" flag if the ed25519 value (or lack thereof)
+  for a server does not reflect the majority consensus. Related to bug
+  17668; bugfix on 0.2.7.2-alpha.
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index eeb0c24..ca8b7ca 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -81,6 +81,8 @@ dircollator_add_routerstatus(dircollator_t *dc,
 {
   const char *id = vrs->status.identity_digest;
 
+  vrs->ed25519_reflects_consensus = 0;
+
   (void) vote;
   vote_routerstatus_t **vrs_lst = digestmap_get(dc->by_rsa_sha1, id);
   if (NULL == vrs_lst) {
@@ -92,7 +94,7 @@ dircollator_add_routerstatus(dircollator_t *dc,
 
   const uint8_t *ed = vrs->ed25519_id;
 
-  if (tor_mem_is_zero((char*)ed, DIGEST256_LEN))
+  if (! vrs->has_ed25519_listing)
 return;
 
   ddmap_entry_t search, *found;
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index be0635d..654d461 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -1242,6 +1242,9 @@ networkstatus_compute_consensus(smartlist_t *votes,
 smartlist_free(combined_server_versions);
 smartlist_free(combined_client_versions);
 
+if (consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING)
+  smartlist_add(flags, tor_strdup("NoEdConsensus"));
+
 smartlist_sort_strings(flags);
 smartlist_uniq_strings(flags);
 
@@ -1539,6 +1542,8 @@ networkstatus_compute_consensus(smartlist_t *votes,
   num_bandwidths = 0;
   num_mbws = 0;
   num_guardfraction_inputs = 0;
+  int ed_consensus = 0;
+  const uint8_t *ed_consensus_val = NULL;
 
   /* Okay, go through all the entries for this digest. */
   for (int voter_idx = 0; voter_idx < smartlist_len(votes); ++voter_idx) {
@@ -1580,6 +1585,17 @@ networkstatus_compute_consensus(smartlist_t *votes,
 
 if (rs->status.has_bandwidth)
   bandwidths_kb[num_bandwidths++] = rs->status.bandwidth_kb;
+
+/* Count number for which ed25519 is canonical. */
+if (rs->ed25519_reflects_consensus) {
+  ++ed_consensus;
+  if (ed_consensus_val) {
+tor_assert(fast_memeq(ed_consensus_val, rs->ed25519_id,
+  ED25519_PUBKEY_LEN));
+  } else {
+ed_consensus_val = rs->ed25519_id;
+  }
+}
   }
 
   /* We don't include this router at all unless more than half of
@@ -1587,6 +1603,14 @@ networkstatus_compute_consensus(smartlist_t *votes,
   if (n_listing <= total_authorities/2)
 continue;
 
+  if (ed_consensus > 0) {
+tor_assert(consensus_method >= MIN_METHOD_FOR_ED25519_ID_VOTING);
+if (ed_consensus <= total_authorities / 2) {
+  log_warn(LD_BUG, "Not enough entries had ed_consensus set; how "
+   "can we have a consensus of %d?", ed_consensus);
+}
+  }
+
   /* The clangalyzer can't figure out that this will never be NULL
* if n_listing is at least 1 */
   tor_assert(current_rsa_id);
@@ -1640,6 +1664,10 @@ networkstatus_compute_consensus(smartlist_t *votes,
 } else if (!strcmp(fl, "Unnamed")) {
   if (is_unnamed)
 smartlist_add(chosen_flags, (char*)fl);
+} else if (!strcmp(fl, 

[tor-commits] [tor/maint-0.2.7] Use nth consistently in dircollate.h.

2016-03-21 Thread nickm
commit 2f2fba8a918674b7187a5b497bb156b79aaec4e1
Author: Nick Mathewson 
Date:   Tue Mar 15 10:39:50 2016 -0400

Use nth consistently in dircollate.h.

Documentation-only patch. Issue 17668.T6.
---
 src/or/dircollate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 2f02512..43cf27f 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -22,8 +22,8 @@ static void dircollator_collate_by_ed25519(dircollator_t *dc);
 typedef struct ddmap_entry_s {
   HT_ENTRY(ddmap_entry_s) node;
   uint8_t d[DIGEST_LEN + DIGEST256_LEN];
-  /* The i'th member of this array corresponds to the vote_routerstatus_t (if
-   * any) received for this digest pair from the n'th voter. */
+  /* The nth member of this array corresponds to the vote_routerstatus_t (if
+   * any) received for this digest pair from the nth voter. */
   vote_routerstatus_t *vrs_lst[FLEXIBLE_ARRAY_MEMBER];
 } ddmap_entry_t;
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.2.7] In routers_make_ed_keys_unique, break ties for published_on

2016-03-21 Thread nickm
commit b24f15a9a16acc8009c25823a127f3090b9b2edc
Author: Nick Mathewson 
Date:   Tue Mar 15 10:34:05 2016 -0400

In routers_make_ed_keys_unique, break ties for published_on

This ensures that if we can't use published_on to decide an ed,rsa
mapping, we at least decide deterministically.

Resolves 17668.T3
---
 src/or/dirserv.c | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index ab8ddfe..ae67e8e 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2124,7 +2124,8 @@ get_possible_sybil_list(const smartlist_t *routers)
 }
 
 /** If there are entries in routers with exactly the same ed25519 keys,
- * remove the older one.  May alter the order of the list. */
+ * remove the older one.  If they are exactly the same age, remove the one
+ * with the greater descriptor digest. May alter the order of the list. */
 static void
 routers_make_ed_keys_unique(smartlist_t *routers)
 {
@@ -2139,7 +2140,12 @@ routers_make_ed_keys_unique(smartlist_t *routers)
 if ((ri2 = digest256map_get(by_ed_key, pk))) {
   /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
* one has the earlier published_on. */
-  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+  const time_t ri_pub = ri->cache_info.published_on;
+  const time_t ri2_pub = ri2->cache_info.published_on;
+  if (ri2_pub < ri_pub ||
+  (ri2_pub == ri_pub &&
+   memcmp(ri->cache_info.signed_descriptor_digest,
+  ri2->cache_info.signed_descriptor_digest,DIGEST_LEN)<0)) {
 digest256map_set(by_ed_key, pk, ri);
 ri2->omit_from_vote = 1;
   } else {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.2.7] Fix log message subjects in networkstatus_parse_vote_from_string()

2016-03-21 Thread nickm
commit c20e34e1894bed07982fe64d60a1b3fe9403d269
Author: Nick Mathewson 
Date:   Mon Feb 22 10:59:27 2016 -0500

Fix log message subjects in networkstatus_parse_vote_from_string()

Some of these messages called the thing being parsed a "vote" whether
it is a vote or a consensus.

Fixes bug 18368.
---
 changes/bug18368 |  5 +
 src/or/routerparse.c | 25 -
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/changes/bug18368 b/changes/bug18368
new file mode 100644
index 000..17218d4
--- /dev/null
+++ b/changes/bug18368
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+- When logging information about an unparseable networkstatus vote or
+  consensus, do not say "vote" when we mean consensus. Fixes bug
+  18368; bugfix on 0.2.0.8-alpha.
+
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index f898ef8..6b6e21d 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -2862,7 +2862,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   (ns_type == NS_TYPE_CONSENSUS) ?
   networkstatus_consensus_token_table :
   networkstatus_token_table, 0)) {
-log_warn(LD_DIR, "Error tokenizing network-status vote header");
+log_warn(LD_DIR, "Error tokenizing network-status header");
 goto err;
   }
 
@@ -3085,7 +3085,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   base16_decode(voter->identity_digest, sizeof(voter->identity_digest),
 tok->args[1], HEX_DIGEST_LEN) < 0) {
 log_warn(LD_DIR, "Error decoding identity digest %s in "
- "network-status vote.", escaped(tok->args[1]));
+ "network-status document.", escaped(tok->args[1]));
 goto err;
   }
   if (ns->type != NS_TYPE_CONSENSUS &&
@@ -3144,7 +3144,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 voter = NULL;
   }
   if (smartlist_len(ns->voters) == 0) {
-log_warn(LD_DIR, "Missing dir-source elements in a vote networkstatus.");
+log_warn(LD_DIR, "Missing dir-source elements in a networkstatus.");
 goto err;
   } else if (ns->type != NS_TYPE_CONSENSUS && smartlist_len(ns->voters) != 1) {
 log_warn(LD_DIR, "Too many dir-source elements in a vote networkstatus.");
@@ -3205,8 +3205,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 }
 if (fast_memcmp(rs1->identity_digest, rs2->identity_digest, DIGEST_LEN)
 >= 0) {
-  log_warn(LD_DIR, "Vote networkstatus entries not sorted by identity "
-   "digest");
+  log_warn(LD_DIR, "Networkstatus entries not sorted by identity digest");
   goto err;
 }
   }
@@ -3319,12 +3318,12 @@ networkstatus_parse_vote_from_string(const char *s, 
const char **eos_out,
 base16_decode(declared_identity, sizeof(declared_identity),
   id_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared identity %s in "
-   "network-status vote.", escaped(id_hexdigest));
+   "network-status document.", escaped(id_hexdigest));
   goto err;
 }
 if (!(v = networkstatus_get_voter_by_id(ns, declared_identity))) {
-  log_warn(LD_DIR, "ID on signature on network-status vote does not match "
-   "any declared directory source.");
+  log_warn(LD_DIR, "ID on signature on network-status document does "
+   "not match any declared directory source.");
   goto err;
 }
 sig = tor_malloc_zero(sizeof(document_signature_t));
@@ -3334,7 +,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 base16_decode(sig->signing_key_digest, sizeof(sig->signing_key_digest),
   sk_hexdigest, HEX_DIGEST_LEN) < 0) {
   log_warn(LD_DIR, "Error decoding declared signing key digest %s in "
-   "network-status vote.", escaped(sk_hexdigest));
+   "network-status document.", escaped(sk_hexdigest));
   tor_free(sig);
   goto err;
 }
@@ -3353,8 +3352,8 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
   /* We already parsed a vote with this algorithm from this voter. Use the
  first one. */
   log_fn(LOG_PROTOCOL_WARN, LD_DIR, "We received a networkstatus "
- "that contains two votes from the same voter with the same "
- "algorithm. Ignoring the second vote.");
+ "that contains two signatures from the same voter with the same "
+ "algorithm. Ignoring the second signature.");
   tor_free(sig);
   continue;
 }
@@ -3362,7 +3361,7 @@ networkstatus_parse_vote_from_string(const char *s, const 
char **eos_out,
 if (ns->type != NS_TYPE_CONSENSUS) {
   if (check_signature_token(ns_digests.d[DIGEST_SHA1], DIGEST_LEN,

[tor-commits] [tor/maint-0.2.7] Enable ed25519 collator in voting.

2016-03-21 Thread nickm
commit 60efce445b17d4b4153e91527887873812f5599f
Author: Nick Mathewson 
Date:   Mon Feb 22 10:07:42 2016 -0500

Enable ed25519 collator in voting.

Previously, I had left in some debugging code with /*XXX*/ after it,
which nobody noticed.  Live and learn!  Next time I will use /*XXX
DO NOT COMMIT*/ or something.

We need to define a new consensus method for this; consensus method
21 shouldn't actually be used.

Fixes bug 17702; bugfix on 0.2.7.2-alpha.
---
 changes/bug17702| 6 ++
 src/or/dircollate.c | 2 +-
 src/or/dirvote.c| 7 +++
 src/or/dirvote.h| 7 ---
 4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/changes/bug17702 b/changes/bug17702
new file mode 100644
index 000..4fda36f
--- /dev/null
+++ b/changes/bug17702
@@ -0,0 +1,6 @@
+  o Major bugfixes:
+- Actually enable Ed25519-based directory collation.
+  Previously, the code had been written, but some debugging code that had
+  accidentally been left in the codebase made it stay turned off.
+  Fixes bug 17702; bugfix on 0.2.7.2-alpha.
+
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 4c812c4..f56aea8 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -159,7 +159,7 @@ dircollator_collate(dircollator_t *dc, int consensus_method)
   tor_assert(!dc->is_collated);
   dc->all_rsa_sha1_lst = smartlist_new();
 
-  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING + 10/*XXX*/)
+  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
 dircollator_collate_by_rsa(dc);
   else
 dircollator_collate_by_ed25519(dc);
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index d8e6ee2..be0635d 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -558,6 +558,13 @@ compute_consensus_method(smartlist_t *votes)
 static int
 consensus_method_is_supported(int method)
 {
+  if (method == MIN_METHOD_FOR_ED25519_ID_IN_MD) {
+/* This method was broken due to buggy code accidently left in
+ * dircollate.c; do not actually use it.
+ */
+return 0;
+  }
+
   return (method >= MIN_SUPPORTED_CONSENSUS_METHOD) &&
 (method <= MAX_SUPPORTED_CONSENSUS_METHOD);
 }
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index dca8540..50c2496 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -55,7 +55,7 @@
 #define MIN_SUPPORTED_CONSENSUS_METHOD 13
 
 /** The highest consensus method that we currently support. */
-#define MAX_SUPPORTED_CONSENSUS_METHOD 21
+#define MAX_SUPPORTED_CONSENSUS_METHOD 22
 
 /** Lowest consensus method where microdesc consensuses omit any entry
  * with no microdesc. */
@@ -87,11 +87,12 @@
 #define MIN_METHOD_FOR_GUARDFRACTION 20
 
 /** Lowest consensus method where authorities may include an "id" line for
- * ed25519 identities in microdescriptors. */
+ * ed25519 identities in microdescriptors. (Broken; see
+ * consensus_method_is_supported() for more info.) */
 #define MIN_METHOD_FOR_ED25519_ID_IN_MD 21
 /** Lowest consensus method where authorities vote on ed25519 ids and ensure
  * ed25519 id consistency. */
-#define MIN_METHOD_FOR_ED25519_ID_VOTING MIN_METHOD_FOR_ED25519_ID_IN_MD
+#define MIN_METHOD_FOR_ED25519_ID_VOTING 22
 
 /** Default bandwidth to clip unmeasured bandwidths to using method >=
  * MIN_METHOD_TO_CLIP_UNMEASURED_BW.  (This is not a consensus method; do not



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.2.7] Never vote for an ed key twice.

2016-03-21 Thread nickm
commit 13a31e72db1b009623aa55bd52ffe7390a22623d
Author: Nick Mathewson 
Date:   Mon Feb 22 11:43:59 2016 -0500

Never vote for an ed key twice.

When generating a vote, and we have two routerinfos with the same ed
key, omit the one published earlier.

This was supposed to have been solved by key pinning, but when I
made key pinning optional, I didn't realize that this would jump up
and bite us.  It is part of bug 18318, and the root cause of 17668.
---
 changes/bug18318_ed |  7 +++
 src/or/dirserv.c| 39 +++
 src/or/or.h |  4 
 3 files changed, 50 insertions(+)

diff --git a/changes/bug18318_ed b/changes/bug18318_ed
new file mode 100644
index 000..af39234
--- /dev/null
+++ b/changes/bug18318_ed
@@ -0,0 +1,7 @@
+  o Major bugfixes:
+- When generating a vote with keypinning disabled, never include two
+  entries for the same ed25519 identity.  This bug was causing
+  authorities to generate votes that they could not parse when a router
+  violated key pinning by changing its RSA identity but keeping its
+  Ed25519 identity.  Fixes bug 17668; fixes part of bug 18318.  Bugfix on
+  0.2.7.2-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 8d9f166..016514f 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2126,6 +2126,44 @@ get_possible_sybil_list(const smartlist_t *routers)
   return omit_as_sybil;
 }
 
+/** If there are entries in routers with exactly the same ed25519 keys,
+ * remove the older one.  May alter the order of the list. */
+static void
+routers_make_ed_keys_unique(smartlist_t *routers)
+{
+  routerinfo_t *ri2;
+  digest256map_t *by_ed_key = digest256map_new();
+
+  SMARTLIST_FOREACH_BEGIN(routers, routerinfo_t *, ri) {
+ri->omit_from_vote = 0;
+if (ri->signing_key_cert == NULL)
+  continue; /* No ed key */
+const uint8_t *pk = ri->signing_key_cert->signing_key.pubkey;
+if ((ri2 = digest256map_get(by_ed_key, pk))) {
+  /* Duplicate; must omit one.  Set the omit_from_vote flag in whichever
+   * one has the earlier published_on. */
+  if (ri2->cache_info.published_on < ri->cache_info.published_on) {
+digest256map_set(by_ed_key, pk, ri);
+ri2->omit_from_vote = 1;
+  } else {
+ri->omit_from_vote = 1;
+  }
+} else {
+  /* Add to map */
+  digest256map_set(by_ed_key, pk, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+
+  digest256map_free(by_ed_key, NULL);
+
+  /* Now remove every router where the omit_from_vote flag got set. */
+  SMARTLIST_FOREACH_BEGIN(routers, const routerinfo_t *, ri) {
+if (ri->omit_from_vote) {
+  SMARTLIST_DEL_CURRENT(routers, ri);
+}
+  } SMARTLIST_FOREACH_END(ri);
+}
+
 /** Extract status information from ri and from other authority
  * functions and store it in rs>.
  *
@@ -2815,6 +2853,7 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t 
*private_key,
 
   routers = smartlist_new();
   smartlist_add_all(routers, rl->routers);
+  routers_make_ed_keys_unique(routers);
   routers_sort_by_identity(routers);
   omit_as_sybil = get_possible_sybil_list(routers);
 
diff --git a/src/or/or.h b/src/or/or.h
index 4496cbc..b6d6ec0 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2081,6 +2081,10 @@ typedef struct {
* tests for it. */
   unsigned int needs_retest_if_added:1;
 
+  /** Used during voting to indicate that we should not include an entry for
+   * this routerinfo. Used only during voting. */
+  unsigned int omit_from_vote:1;
+
 /** Tor can use this router for general positions in circuits; we got it
  * from a directory server as usual, or we're an authority and a server
  * uploaded it. */



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor/maint-0.2.7] Document has_ed25519_listing

2016-03-21 Thread nickm
commit 60ca3f358f80930778b12c9fcc8e3cf562b64e8e
Author: Nick Mathewson 
Date:   Tue Feb 23 08:13:39 2016 -0500

Document has_ed25519_listing
---
 src/or/or.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/or/or.h b/src/or/or.h
index b6d6ec0..b24b6a8 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2377,7 +2377,9 @@ typedef struct vote_routerstatus_t {
   char *version; /**< The version that the authority says this router is
   * running. */
   unsigned int has_measured_bw:1; /**< The vote had a measured bw */
-  unsigned int has_ed25519_listing:1; /** DOCDOC */
+  /** True iff the vote included an entry for ed25519 ID, or included
+   * "id ed25519 none" to indicate that there was no ed25519 ID. */
+  unsigned int has_ed25519_listing:1;
   unsigned int ed25519_reflects_consensus:1; /** DOCDOC */
   uint32_t measured_bw_kb; /**< Measured bandwidth (capacity) of the router */
   /** The hash or hashes that the authority claims this microdesc has. */



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-otrproperties] Update translations for tor-messenger-otrproperties

2016-03-21 Thread translation
commit ec0250614f67bfde343b0edc30233728797da3ec
Author: Translation commit bot 
Date:   Mon Mar 21 17:27:02 2016 +

Update translations for tor-messenger-otrproperties
---
 ar/otr.properties|  2 +-
 bg/otr.properties|  2 +-
 hr_HR/otr.properties | 62 ++--
 3 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/ar/otr.properties b/ar/otr.properties
index abf8235..21de193 100644
--- a/ar/otr.properties
+++ b/ar/otr.properties
@@ -11,7 +11,7 @@ msgevent.rcvdmsg_malformed=تم إستقبال رسالة 
بياناتها مش
 msgevent.log_heartbeat_rcvd=تم إستقبال إشارة أولية من %S.
 msgevent.log_heartbeat_sent=تم إرسال إشارة أولية إلي %S.
 msgevent.rcvdmsg_general_err=An OTR error occured.
-msgevent.rcvdmsg_unecrypted=The following message received from %S was not 
encrypted: %S
+msgevent.rcvdmsg_unecrypted=الرسالة التالية من %S لم تكن 
مشفرة: %S
 msgevent.rcvdmsg_unrecognized=We received an unrecognized OTR message from %S.
 msgevent.rcvdmsg_for_other_instance=أرسل %S رسالة لجلسة م
حادثة مختلفة. إذا قمت بتسجيل الدخول عدة م
رات، فقد تتلقي جلسة أخري نفس الرسالة.
 context.gone_secure_private=تم بدء محادثة خاصة مع %S.
diff --git a/bg/otr.properties b/bg/otr.properties
index 5599a44..082de37 100644
--- a/bg/otr.properties
+++ b/bg/otr.properties
@@ -11,7 +11,7 @@ msgevent.rcvdmsg_malformed=We received a malformed data 
message from %S.
 msgevent.log_heartbeat_rcvd=Получен пулс от %S.
 msgevent.log_heartbeat_sent=Пулс изпратен на %S.
 msgevent.rcvdmsg_general_err=Възникна OTR грешка. 
-msgevent.rcvdmsg_unecrypted=The following message received from %S was not 
encrypted: %S
+msgevent.rcvdmsg_unecrypted=Съобщението получено от %S е 
нешифровано : %S
 msgevent.rcvdmsg_unrecognized=Получихме неразпознато OTR 
съобщение от %S.
 msgevent.rcvdmsg_for_other_instance=%S е изпратил съобщение, 
предназначено за друга сесия. Ако сте 
логнати много пъти е възможно друга сесия 
да го е получила.
 context.gone_secure_private=Започнат е поверителен 
разговор с %S.
diff --git a/hr_HR/otr.properties b/hr_HR/otr.properties
index 11b23be..a7b059a 100644
--- a/hr_HR/otr.properties
+++ b/hr_HR/otr.properties
@@ -1,31 +1,31 @@
-msgevent.encryption_required_part1=You attempted to send an unencrypted 
message to %S. As a policy, unencrypted messages are not allowed.
-msgevent.encryption_required_part2=Attempting to start a private conversation. 
Your message will be retransmitted when the private conversation starts.
-msgevent.encryption_error=An error occurred when encrypting your message. The 
message was not sent.
-msgevent.connection_ended=%S has already closed their private connection to 
you. Your message was not sent. Either end your private conversation, or 
restart it.
-msgevent.setup_error=An error occured while setting up a private conversation 
with %S.
-msgevent.msg_reflected=You are receiving your own OTR messages. You are either 
trying to talk to yourself, or someone is reflecting your messages back at you.
-msgevent.msg_resent=The last message to %S was resent.
-msgevent.rcvdmsg_not_private=The encrypted message received from %S is 
unreadable, as you are not currently communicating privately.
-msgevent.rcvdmsg_unreadable=We received an unreadable encrypted message from 
%S.
-msgevent.rcvdmsg_malformed=We received a malformed data message from %S.
-msgevent.log_heartbeat_rcvd=Heartbeat received from %S.
-msgevent.log_heartbeat_sent=Heartbeat sent to %S.
-msgevent.rcvdmsg_general_err=An OTR error occured.
-msgevent.rcvdmsg_unecrypted=The following message received from %S was not 
encrypted: %S
-msgevent.rcvdmsg_unrecognized=We received an unrecognized OTR message from %S.
-msgevent.rcvdmsg_for_other_instance=%S has sent a message intended for a 
different session. If you are logged in multiple times, another session may 
have received the message.
-context.gone_secure_private=Private conversation with %S started.
-context.gone_secure_unverified=Private conversation with %S started. However, 
their identity has not been verified.
-context.still_secure=Successfully refreshed the private conversation with %S.
-error.enc=Error occurred encrypting message.
-error.not_priv=You sent encrypted data to %S, who wasn't expecting it.
-error.unreadable=You transmitted an unreadable encrypted message.
-error.malformed=You transmitted a malformed data message.
-resent=[resent]
-tlv.disconnected=%S has ended their private conversation with you; you should 
do the same.
-query.msg=%S has requested an Off-the Record private conversation. However, 
you 

[tor-commits] [translation/tor-messenger-ircproperties_completed] Update translations for tor-messenger-ircproperties_completed

2016-03-21 Thread translation
commit 3eff9f73e17aaa91b169ab5d8316b7b97956e494
Author: Translation commit bot 
Date:   Mon Mar 21 17:26:40 2016 +

Update translations for tor-messenger-ircproperties_completed
---
 hr_HR/irc.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hr_HR/irc.properties b/hr_HR/irc.properties
index a26165a..ee71912 100644
--- a/hr_HR/irc.properties
+++ b/hr_HR/irc.properties
@@ -47,7 +47,7 @@ ctcp.time=Vrijeme za %1$S je %2$S.
 #   These are the help messages for each command, the %S is the command name
 #   Each command first gives the parameter it accepts and then a description of
 #   the command.
-command.action=%S radnja za izvesti: Izvedi radnju.
+command.action=%S akcija za izvesti: Izvedi akciju.
 command.ctcp=%S nadimak poruka: Å alje CTCP poruku navedenom 
nadimku.
 command.chanserv=%S naredba: Å alje naredbu ChanServ-u.
 command.deop=%S nadimak1[,nadimak2]*: Makni nekome status 
operatera kanala. Morate biti operater kanala da bi ovo izveli.
@@ -60,7 +60,7 @@ command.memoserv=%S naredba: Pošalji naredbu 
MemoServ-u.
 command.modeUser=%S (+|-)novi modalitet [nadimak]: Postavi ili 
makni modalitet korisnika.
 command.modeChannel=%S kanal[ (+|-)novi modalitet 
[parametar][,parametar]*]: Dobavi, postavi ili makni modalitet 
kanala.
 command.msg=%S nadimak poruka: Pošalji privatnu poruku 
korisniku (a ne kanalu).
-command.nick=%S novi nadimak: Promijeni svoj nadimak.
+command.nick=%S novi nadimak: Promjenite svoj nadimak.
 command.nickserv=%S naredba: Pošalji naredbu NickServ-u.
 command.notice=%S cilj poruka: Pošalji obavijest korisniku 
ili kanalu.
 command.op=%S nadimak1[,nadimak2]*: Dodijeli nekome status 
operatora kanala. Morate biti operter kanala da bi ovo izveli.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-ircproperties] Update translations for tor-messenger-ircproperties

2016-03-21 Thread translation
commit b2a02a549e1871f8f3f45d33204cc23f99124c48
Author: Translation commit bot 
Date:   Mon Mar 21 17:26:28 2016 +

Update translations for tor-messenger-ircproperties
---
 am/irc.properties  |   2 +-
 ar/irc.properties  |   2 +-
 ast/irc.properties |   4 +-
 az/irc.properties  |   4 +-
 be/irc.properties  |   4 +-
 bn/irc.properties  |   6 +-
 bs/irc.properties  |   6 +-
 cv/irc.properties  |   4 +-
 cy/irc.properties  |   6 +-
 eo/irc.properties  |   4 +-
 es_AR/irc.properties   |   4 +-
 es_MX/irc.properties   |   2 +-
 et/irc.properties  |   4 +-
 eu/irc.properties  |   2 +-
 fil/irc.properties |   4 +-
 fo/irc.properties  |   6 +-
 fy/irc.properties  |   6 +-
 ga/irc.properties  |   2 +-
 gl/irc.properties  |   6 +-
 gu/irc.properties  |   2 +-
 hi/irc.properties  |   4 +-
 hr/irc.properties  |   4 +-
 hr_HR/irc.properties   | 210 ++---
 ia/irc.properties  |   4 +-
 is/irc.properties  |   4 +-
 kk/irc.properties  |   2 +-
 km/irc.properties  |   6 +-
 kn/irc.properties  |   4 +-
 ko/irc.properties  |   2 +-
 ko_KR/irc.properties   |   6 +-
 ku_IQ/irc.properties   |   2 +-
 lo/irc.properties  |   4 +-
 lt/irc.properties  |   2 +-
 ms_MY/irc.properties   |   6 +-
 my/irc.properties  |   6 +-
 pa/irc.properties  |   6 +-
 ru@petr1708/irc.properties |   6 +-
 si_LK/irc.properties   |   6 +-
 sk_SK/irc.properties   |   6 +-
 sl/irc.properties  |   6 +-
 sl_SI/irc.properties   |   6 +-
 sr/irc.properties  |   6 +-
 sr@latin/irc.properties|   4 +-
 ta/irc.properties  |   4 +-
 th/irc.properties  |   4 +-
 uz/irc.properties  |   6 +-
 vi/irc.properties  |   6 +-
 zh_HK/irc.properties   |   6 +-
 48 files changed, 209 insertions(+), 209 deletions(-)

diff --git a/am/irc.properties b/am/irc.properties
index a086a13..7842836 100644
--- a/am/irc.properties
+++ b/am/irc.properties
@@ -180,7 +180,7 @@ error.unknownMode='%S' is not a valid user mode on this 
server.
 #These are the descriptions given in a tooltip with information received
 #from a whois response.
 #The human readable ("realname") description of the user.
-tooltip.realname=Name
+tooltip.realname=ስም
 tooltip.server=Connected to
 #The username and hostname that the user connects from (usually based on 
the
 #reverse DNS of the user's IP, but often mangled by the server to
diff --git a/ar/irc.properties b/ar/irc.properties
index 248aa22..01dc262 100644
--- a/ar/irc.properties
+++ b/ar/irc.properties
@@ -6,7 +6,7 @@
 #  This is displayed inside the accountUsernameInfoWithDescription
 #  string defined in imAccounts.properties when the user is
 #  configuring an IRC account.
-irc.usernameHint=nick
+irc.usernameHint=اختصار
 
 # LOCALIZATION NOTE (connection.error.*):
 #   These will show in the account manager if the account is
diff --git a/ast/irc.properties b/ast/irc.properties
index a086a13..3796c17 100644
--- a/ast/irc.properties
+++ b/ast/irc.properties
@@ -204,5 +204,5 @@ tooltip.serverValue=%1$S (%2$S)
 
 # LOCALIZATION NOTE (yes, no):
 #  These are used to turn true/false values into a yes/no response.
-yes=Yes
-no=No
+yes=Si
+no=Non
diff --git a/az/irc.properties b/az/irc.properties
index a086a13..cb9e71d 100644
--- a/az/irc.properties
+++ b/az/irc.properties
@@ -204,5 +204,5 @@ tooltip.serverValue=%1$S (%2$S)
 
 # LOCALIZATION NOTE (yes, no):
 #  These are used to turn true/false values into a yes/no response.
-yes=Yes
-no=No
+yes=Bəli
+no=Xeyr
diff --git a/be/irc.properties b/be/irc.properties
index a086a13..6c779c6 100644
--- a/be/irc.properties
+++ b/be/irc.properties
@@ -204,5 +204,5 @@ tooltip.serverValue=%1$S (%2$S)
 
 # LOCALIZATION NOTE (yes, no):
 #  These are used to turn true/false values into a yes/no response.
-yes=Yes
-no=No
+yes=Так
+no=Не
diff --git a/bn/irc.properties b/bn/irc.properties
index a086a13..862f9c6 100644
--- a/bn/irc.properties
+++ b/bn/irc.properties
@@ -180,7 +180,7 @@ error.unknownMode='%S' is not a valid user mode on this 
server.
 #These are the descriptions given in a tooltip with information received
 #from a whois response.
 #The human readable ("realname") description of the user.
-tooltip.realname=Name
+tooltip.realname=নাম
 tooltip.server=Connected to
 #The username and hostname that the user connects from (usually based on 
the
 #reverse DNS of the user's IP, but often mangled by the server to
@@ -204,5 +204,5 @@ tooltip.serverValue=%1$S (%2$S)
 
 # LOCALIZATION NOTE (yes, no):
 #  These are used to turn true/false values into a yes/no response.
-yes=Yes
-no=No
+yes=হ্যা
+no=না
diff --git a/bs/irc.properties b/bs/irc.properties

[tor-commits] [translation/tor-messenger-imtooltipproperties] Update translations for tor-messenger-imtooltipproperties

2016-03-21 Thread translation
commit 197fbce57563a19f89807f92e9648e0e8d389deb
Author: Translation commit bot 
Date:   Mon Mar 21 17:24:55 2016 +

Update translations for tor-messenger-imtooltipproperties
---
 hr_HR/imtooltip.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hr_HR/imtooltip.properties b/hr_HR/imtooltip.properties
index 0dd51fe..96652d8 100644
--- a/hr_HR/imtooltip.properties
+++ b/hr_HR/imtooltip.properties
@@ -2,6 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-buddy.username=Username
-buddy.account=Account
-contact.tags=Tags
+buddy.username=Korisničko ime
+buddy.account=Račun
+contact.tags=Oznake

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-fingerdtd] Update translations for tor-messenger-fingerdtd

2016-03-21 Thread translation
commit f071acba71f2709bada712c1b920c211195f7601
Author: Translation commit bot 
Date:   Mon Mar 21 17:24:13 2016 +

Update translations for tor-messenger-fingerdtd
---
 bs/finger.dtd|  2 +-
 eo/finger.dtd|  4 ++--
 eu/finger.dtd|  4 ++--
 fil/finger.dtd   |  2 +-
 gl/finger.dtd|  6 +++---
 gu/finger.dtd|  2 +-
 hi/finger.dtd|  2 +-
 hr_HR/finger.dtd | 18 +-
 ia/finger.dtd|  4 ++--
 is/finger.dtd|  2 +-
 km/finger.dtd|  2 +-
 ko_KR/finger.dtd |  6 +++---
 ku_IQ/finger.dtd |  2 +-
 ky/finger.dtd|  2 +-
 lt/finger.dtd|  2 +-
 my/finger.dtd|  6 +++---
 pa/finger.dtd|  2 +-
 si_LK/finger.dtd |  6 +++---
 sk_SK/finger.dtd |  2 +-
 sl/finger.dtd|  4 ++--
 sl_SI/finger.dtd |  2 +-
 sr/finger.dtd|  6 +++---
 ta/finger.dtd|  2 +-
 th/finger.dtd|  4 ++--
 ur_PK/finger.dtd |  4 ++--
 vi/finger.dtd|  2 +-
 zh_HK/finger.dtd |  2 +-
 27 files changed, 51 insertions(+), 51 deletions(-)

diff --git a/bs/finger.dtd b/bs/finger.dtd
index 7e611a4..40a270a 100644
--- a/bs/finger.dtd
+++ b/bs/finger.dtd
@@ -6,5 +6,5 @@
 
 
 
-
+
 
\ No newline at end of file
diff --git a/eo/finger.dtd b/eo/finger.dtd
index 7e611a4..722b926 100644
--- a/eo/finger.dtd
+++ b/eo/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
 
 
 
 
-
+
 
\ No newline at end of file
diff --git a/eu/finger.dtd b/eu/finger.dtd
index c0472ca..44888f9 100644
--- a/eu/finger.dtd
+++ b/eu/finger.dtd
@@ -2,9 +2,9 @@
 
 
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/fil/finger.dtd b/fil/finger.dtd
index 7e611a4..f51d004 100644
--- a/fil/finger.dtd
+++ b/fil/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/gl/finger.dtd b/gl/finger.dtd
index 80a90a6..aa47bca 100644
--- a/gl/finger.dtd
+++ b/gl/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/gu/finger.dtd b/gu/finger.dtd
index 7e611a4..22bdc5c 100644
--- a/gu/finger.dtd
+++ b/gu/finger.dtd
@@ -6,5 +6,5 @@
 
 
 
-
+
 
\ No newline at end of file
diff --git a/hi/finger.dtd b/hi/finger.dtd
index 7e611a4..883e9dd 100644
--- a/hi/finger.dtd
+++ b/hi/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/hr_HR/finger.dtd b/hr_HR/finger.dtd
index 7e611a4..223b650 100644
--- a/hr_HR/finger.dtd
+++ b/hr_HR/finger.dtd
@@ -1,10 +1,10 @@
-
-
+
+
 
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ia/finger.dtd b/ia/finger.dtd
index 7e611a4..5c914bd 100644
--- a/ia/finger.dtd
+++ b/ia/finger.dtd
@@ -1,8 +1,8 @@
 
 
-
+
 
-
+
 
 
 
diff --git a/is/finger.dtd b/is/finger.dtd
index 7e611a4..1d1550b 100644
--- a/is/finger.dtd
+++ b/is/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/km/finger.dtd b/km/finger.dtd
index 7e611a4..4391c78 100644
--- a/km/finger.dtd
+++ b/km/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/ko_KR/finger.dtd b/ko_KR/finger.dtd
index 7e611a4..6015361 100644
--- a/ko_KR/finger.dtd
+++ b/ko_KR/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/ku_IQ/finger.dtd b/ku_IQ/finger.dtd
index 7e611a4..348e5b5 100644
--- a/ku_IQ/finger.dtd
+++ b/ku_IQ/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/ky/finger.dtd b/ky/finger.dtd
index 7e611a4..b9bd421 100644
--- a/ky/finger.dtd
+++ b/ky/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/lt/finger.dtd b/lt/finger.dtd
index d48d44f..9d37826 100644
--- a/lt/finger.dtd
+++ b/lt/finger.dtd
@@ -6,5 +6,5 @@
 
 
 
-
+
 
\ No newline at end of file
diff --git a/my/finger.dtd b/my/finger.dtd
index 7e611a4..462ad14 100644
--- a/my/finger.dtd
+++ b/my/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/pa/finger.dtd b/pa/finger.dtd
index 7e611a4..30c7447 100644
--- a/pa/finger.dtd
+++ b/pa/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/si_LK/finger.dtd b/si_LK/finger.dtd
index 7e611a4..15bd89e 100644
--- a/si_LK/finger.dtd
+++ b/si_LK/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/sk_SK/finger.dtd b/sk_SK/finger.dtd
index 9b0ef21..2823969 100644
--- a/sk_SK/finger.dtd
+++ b/sk_SK/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/sl/finger.dtd b/sl/finger.dtd
index 7e611a4..246217e 100644
--- a/sl/finger.dtd
+++ b/sl/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
 
 
 
 
-
+
 
\ No newline at end of file
diff --git a/sl_SI/finger.dtd b/sl_SI/finger.dtd
index 7e611a4..e57cca4 100644
--- a/sl_SI/finger.dtd
+++ b/sl_SI/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/sr/finger.dtd b/sr/finger.dtd
index 7e611a4..73c7149 100644
--- a/sr/finger.dtd
+++ b/sr/finger.dtd
@@ -1,10 +1,10 @@
 
 
-
+
 
-
+
 
 
 
-
+
 
\ No newline at end of file
diff --git a/ta/finger.dtd b/ta/finger.dtd
index 7e611a4..eb43f7a 100644
--- a/ta/finger.dtd
+++ b/ta/finger.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/th/finger.dtd b/th/finger.dtd
index 7e611a4..e88a45e 100644
--- a/th/finger.dtd
+++ b/th/finger.dtd
@@ -1,8 +1,8 @@
 
 

[tor-commits] [translation/tor-messenger-facebookproperties] Update translations for tor-messenger-facebookproperties

2016-03-21 Thread translation
commit 3add8a650d3a3b93e500d186d3a19af35c0c3ccf
Author: Translation commit bot 
Date:   Mon Mar 21 17:23:15 2016 +

Update translations for tor-messenger-facebookproperties
---
 hr_HR/facebook.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hr_HR/facebook.properties b/hr_HR/facebook.properties
index aaf7cdc..016f24d 100644
--- a/hr_HR/facebook.properties
+++ b/hr_HR/facebook.properties
@@ -2,6 +2,6 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-connection.error.useUsernameNotEmailAddress=Please use your Facebook username, 
not an email address
+connection.error.useUsernameNotEmailAddress=Molimo Vas da koristite svoje 
Facebook korisničko ime, ne email adresu
 
-facebook.chat.name=Facebook Chat
+facebook.chat.name=Facebook chat

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor_animation] Update translations for tor_animation

2016-03-21 Thread translation
commit 279b5f3ff7742d366b3716465e57ffa4c66075ce
Author: Translation commit bot 
Date:   Mon Mar 21 17:15:38 2016 +

Update translations for tor_animation
---
 ca.srt|  52 +--
 cs.srt|  52 +--
 eu.srt|  52 +--
 fa.srt|  52 +--
 hr_HR.srt | 120 +++---
 pl.srt|  52 +--
 sq.srt|  52 +--
 zh_HK.srt |  52 +--
 8 files changed, 242 insertions(+), 242 deletions(-)

diff --git a/ca.srt b/ca.srt
index 80fa4a2..c8a01d7 100644
--- a/ca.srt
+++ b/ca.srt
@@ -40,127 +40,127 @@ i molta més informació
 sobre vosaltres i la vostra vida. 
 
 10
-00:00:29,620 --> 00:00:32,460
+00:00:29,200 --> 00:00:31,500
 la qual probablement no teníeu intenció
 de compartir amb desconeguts,
 
 11
-00:00:32,920 --> 00:00:35,840
+00:00:31,700 --> 00:00:34,000
 que podrien fer servir fàcilment aquesta informació
 per abusar de vosaltres.
 
 12
-00:00:36,220 --> 00:00:38,120
+00:00:34,500 --> 00:00:37,000
 Però això no passa si esteu fent servir Tor!
 
 13
-00:00:39,140 --> 00:00:42,840
+00:00:37,140 --> 00:00:40,840
 El navegador Tor protegeix la nostra privadesa
 i la nostra identitat a Internet. 
 
 14
-00:00:43,560 --> 00:00:46,760
+00:00:41,560 --> 00:00:44,760
 Tor assegura la teva connexió
 amb tres capes d'encriptatge.
 
 15
-00:00:46,940 --> 00:00:51,760
+00:00:44,940 --> 00:00:49,760
 i la passa per tres servidors duts a terme
 voluntàriament a tot el món, 
 
 16
-00:00:52,280 --> 00:00:55,520
+00:00:50,280 --> 00:00:53,520
 que ens permeten comunicar-nos
 de manera anònima per Internet. 
 
 17
-00:00:58,560 --> 00:01:00,280
+00:00:56,560 --> 00:00:58,280
 Tor també protegeix la nostra informació
 
 18
-00:01:00,400 --> 00:01:03,900
+00:00:58,400 --> 00:01:01,900
 dels objectius del govern o les grans empreses
 i la vigilància massiva. 
 
 19
-00:01:04,880 --> 00:01:09,340
+00:01:02,880 --> 00:01:07,340
 Potser viviu en un país repressiu
 que intenta controlar i vigilar Internet.
 
 20
-00:01:09,900 --> 00:01:13,800
+00:01:07,900 --> 00:01:11,800
 O potser no voleu que les grans empreses
 s'aprofitin de la vostra informació personal. 
 
 21
-00:01:14,880 --> 00:01:17,640
+00:01:12,880 --> 00:01:15,640
 Tot fa que tots els seus usuaris
 siguin iguals
 
 22
-00:01:17,920 --> 00:01:20,800
+00:01:15,920 --> 00:01:18,800
 cosa que confon l'observador
 i us fa anònims.
 
 23
-00:01:21,500 --> 00:01:24,980
+00:01:19,500 --> 00:01:22,980
 Per tant, quanta més gent faci servir la xarxa Tor
 més forta es farà
 
 24
-00:01:25,140 --> 00:01:29,800
+00:01:23,140 --> 00:01:27,800
 ja que és més fàcil amagar-se en una multitud
 de gent que és idèntica.
 
 25
-00:01:30,700 --> 00:01:33,240
+00:01:28,700 --> 00:01:31,240
 Podeu sortejar la censura
 sense preocupar-vos que
 
 26
-00:01:33,400 --> 00:01:36,100
+00:01:31,400 --> 00:01:34,100
 el censor sàpigue el que feu
 a internet. 
 
 
 27
-00:01:38,540 --> 00:01:41,440
+00:01:36,540 --> 00:01:39,440
 Els anuncis no us seguiran
 allà on aneu durant mesos,
 
 28
-00:01:41,640 --> 00:01:43,300
+00:01:39,640 --> 00:01:41,300
 començant per quan vau fer
 clic per primer cop en un producte.
 
 29
-00:01:45,880 --> 00:01:49,380
+00:01:43,880 --> 00:01:47,380
 Fent servir Tor, els llocs que visiteu
 no sabran ni qui sou, 
 
 30
-00:01:49,540 --> 00:01:51,760
+00:01:47,540 --> 00:01:49,760
 ni de quina part del món
 els esteu visitant
 
 31
-00:01:51,920 --> 00:01:53,920
+00:01:49,920 --> 00:01:51,920
 a no ser que us identifiqueu i els ho digueu.
 
 32
-00:01:56,200 --> 00:01:57,840
+00:01:54,200 --> 00:01:55,840
 Baixant i usant Tor
 
 33
-00:01:58,200 --> 00:02:00,560
+00:01:56,200 --> 00:01:58,560
 podeu protegir la gent
 que necessita anonimat.
 
 34
-00:02:00,880 --> 00:02:03,640
+00:01:58,880 --> 00:02:01,640
 com els activistes, periodistes i bloggers.
 
 35
-00:02:04,000 --> 00:02:09,000
+00:02:02,000 --> 00:02:07,000
 Baixa i utilitza Tor! O executa un relé!
 
diff --git a/cs.srt b/cs.srt
index 45aa820..86ba61d 100644
--- a/cs.srt
+++ b/cs.srt
@@ -35,106 +35,106 @@ všechny stránky, co jste navštívil, prohlížeč, 
který používáte,
 a ještě mnohem více informací o Vás a Vašem životě,
 
 10
-00:00:29,620 --> 00:00:32,460
+00:00:29,200 --> 00:00:31,500
 které byste pravděpodobně nechtěli sdílet se zcela neznámými lidmi,
 
 11
-00:00:32,920 --> 00:00:35,840
+00:00:31,700 --> 00:00:34,000
 kteří mohou tato data krásně použít, aby Vás využili,
 
 12
-00:00:36,220 --> 00:00:38,120
+00:00:34,500 --> 00:00:37,000
 Ale ne, pokud používate Tor!
 
 13
-00:00:39,140 --> 00:00:42,840
+00:00:37,140 --> 00:00:40,840
 Prohlížeč Tor chrání naše soukromí a identitu na internetu.
 
 14
-00:00:43,560 --> 00:00:46,760
+00:00:41,560 --> 00:00:44,760
 Tor zabezpečuje 

[tor-commits] [translation/tails-perl5lib_completed] Update translations for tails-perl5lib_completed

2016-03-21 Thread translation
commit 1799950f3da868f2970996370ae2d47b35f70fcc
Author: Translation commit bot 
Date:   Mon Mar 21 17:14:05 2016 +

Update translations for tails-perl5lib_completed
---
 ar.po| 2 +-
 bg.po| 4 ++--
 cy.po| 2 +-
 de.po| 4 ++--
 el.po| 2 +-
 en_GB.po | 2 +-
 es.po| 2 +-
 fi.po| 2 +-
 fr.po| 4 ++--
 fr_CA.po | 4 ++--
 hr_HR.po | 4 ++--
 hu.po| 4 ++--
 id.po| 6 +++---
 it.po| 4 ++--
 ko.po| 2 +-
 lt.po| 4 ++--
 nb.po| 4 ++--
 nl.po| 4 ++--
 pl.po| 4 ++--
 pt_BR.po | 4 ++--
 ro.po| 2 +-
 ru.po| 4 ++--
 sv.po| 4 ++--
 tr.po| 4 ++--
 uk.po| 2 +-
 zh_CN.po | 4 ++--
 zh_TW.po | 4 ++--
 27 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/ar.po b/ar.po
index 0fa6d9a..cb04373 100644
--- a/ar.po
+++ b/ar.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-02-03 15:35+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Ahmed Alhammadi <66222...@gmail.com>\n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bg.po b/bg.po
index 0436ae0..b328f5c 100644
--- a/bg.po
+++ b/bg.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-12 15:38+\n"
+"POT-Creation-Date: 2016-01-25 16:59+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tsvetan Nikolov \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cy.po b/cy.po
index 681d54b..e99962f 100644
--- a/cy.po
+++ b/cy.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-01-30 02:24+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Christopher Griffiths \n"
 "Language-Team: Welsh (http://www.transifex.com/otf/torproject/language/cy/)\n"
 "MIME-Version: 1.0\n"
diff --git a/de.po b/de.po
index 25b990b..bed1b53 100644
--- a/de.po
+++ b/de.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-21 16:21+\n"
+"POT-Creation-Date: 2016-01-25 16:59+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: max weber\n"
 "Language-Team: German 
(http://www.transifex.com/otf/torproject/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/el.po b/el.po
index 9ad34db..4b20375 100644
--- a/el.po
+++ b/el.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-02-23 17:23+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: TitanJack \n"
 "Language-Team: Greek (http://www.transifex.com/otf/torproject/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/en_GB.po b/en_GB.po
index 4578b36..955afaa 100644
--- a/en_GB.po
+++ b/en_GB.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-02-01 12:49+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/es.po b/es.po
index deb76ff..ffaa28a 100644
--- a/es.po
+++ b/es.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-03-12 17:36+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: EzeqGO\n"
 "Language-Team: Spanish 
(http://www.transifex.com/otf/torproject/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fi.po b/fi.po
index 48354d5..9ec6a9c 100644
--- a/fi.po
+++ b/fi.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-02-18 20:19+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Jaakko Helleranta \n"
 "Language-Team: Finnish 
(http://www.transifex.com/otf/torproject/language/fi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fr.po b/fr.po
index ebce126..74a3dc1 

[tor-commits] [translation/tor-messenger-conversationsproperties] Update translations for tor-messenger-conversationsproperties

2016-03-21 Thread translation
commit de8ff11236059384107139f6584ca145976bbec9
Author: Translation commit bot 
Date:   Mon Mar 21 17:22:37 2016 +

Update translations for tor-messenger-conversationsproperties
---
 hr_HR/conversations.properties | 36 ++--
 nl_BE/conversations.properties |  6 +++---
 pt/conversations.properties|  4 ++--
 ur_PK/conversations.properties |  2 +-
 4 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/hr_HR/conversations.properties b/hr_HR/conversations.properties
index 1a5564a..1496e91 100644
--- a/hr_HR/conversations.properties
+++ b/hr_HR/conversations.properties
@@ -5,67 +5,67 @@
 # LOCALIZATION NOTE (targetChanged):
 #  %1$S is the new conversation title (display name of the new target),
 #  %2$S is the protocol name used for the new target.
-targetChanged=The conversation will continue with %1$S, using %2$S.
+targetChanged=Razgovor će se nastaviti s %1$S, koristeći %2$S.
 
 # LOCALIZATION NOTE (statusChanged):
 #  %1$S is the display name of the contact.
 #  %2$S is the new status type (a value from status.properties).
-statusChanged=%1$S is now %2$S.
+statusChanged=%1$S je sad %2$S.
 # LOCALIZATION NOTE (statusChangedWithStatusText):
 #  %1$S is the display name of the contact.
 #  %2$S is the new status type (a value from status.properties).
 #  %3$S is the status text (eg. "I'm currently away from the computer").
-statusChangedWithStatusText=%1$S is now %2$S: %3$S.
+statusChangedWithStatusText=%1$S je sad %2$S: %3$S.
 # LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
 #  special case of the previous 2 strings for when the status was
 #  previously unknown. These 2 strings should not mislead the user
 #  into thinking the person's status has just changed.
-statusChangedFromUnknown=%1$S is %2$S.
-statusChangedFromUnknownWithStatusText=%1$S is %2$S: %3$S.
+statusChangedFromUnknown=%1$S je %2$S.
+statusChangedFromUnknownWithStatusText=%1$S je %2$S: %3$S.
 # LOCALIZATION NOTE (statusKnown[WithStatusText]):
 # special case of the previous 2 strings for when an account has just
 # been reconnected, so the status is now known. These 2 strings should not
 # mislead the user into thinking the person's status has just changed.
-statusKnown=Your account has been reconnected (%1$S is %2$S).
-statusKnownWithStatusText=Your account has been reconnected (%1$S is %2$S: 
%3$S).
+statusKnown=Vaš račun je ponovno spojen (%1$S je %2$S).
+statusKnownWithStatusText=Vaš račun je ponovno spojen (%1$S je %2$S: %3$S).
 # LOCALIZATION NOTE (statusUnknown):
 #  %S is the display name of the contact.
-statusUnknown=Your account is disconnected (the status of %S is no longer 
known).
+statusUnknown=Vaš račun je odspojen (status %S više nije poznat).
 
-accountDisconnected=Your account is disconnected.
-accountReconnected=Your account has been reconnected.
+accountDisconnected=Vaš račun je odspojen.
+accountReconnected=Vaš račun je ponovno spojen.
 
 # LOCALIZATION NOTE (autoReply):
 #  %S is replaced by the text of a message that was sent as an automatic reply.
-autoReply=Auto-reply - %S
+autoReply=Automatski odgovor - %S
 
 # LOCALIZATION NOTE (noTopic):
 # Displayed instead of the topic when no topic is set.
-noTopic=No topic message for this room.
+noTopic=Nema poruke teme za ovu sobu.
 
 # LOCALIZATION NOTE (topicSet):
 #  %1$S is the conversation name, %2$S is the topic.
-topicSet=The topic for %1$S is: %2$S.
+topicSet=Tema za %1$S je: %2$S.
 # LOCALIZATION NOTE (topicNotSet):
 #  %S is the conversation name.
-topicNotSet=There is no topic for %S.
+topicNotSet=Nema teme za %S.
 # LOCALIZATION NOTE (topicChanged):
 #  %1$S is the user who changed the topic, %2$S is the new topic.
-topicChanged=%1$S has changed the topic to: %2$S.
+topicChanged=%1$S je promijenio/la temu na: %2$S.
 # LOCALIZATION NOTE (topicCleared):
 #  %1$S is the user who cleared the topic.
-topicCleared=%1$S has cleared the topic.
+topicCleared=%1$S je očistio/la temu.
 
 # LOCALIZATION NOTE (nickSet):
 #   This is displayed as a system message when a participant changes his/her
 #   nickname in a conversation.
 #   %1$S is the old nick.
 #   %2$S is the new nick.
-nickSet=%1$S is now known as %2$S.
+nickSet=%1$S je sad znan kao %2$S.
 # LOCALIZATION NOTE (nickSet.you):
 #   This is displayed as a system message when your nickname is changed.
 #   %S is your new nick.
-nickSet.you=You are now known as %S.
+nickSet.you=Sad ste poznati kao %S.
 
 # LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
 #  ellipsis is used when copying a part of a message to show that the message 
was cut
diff --git a/nl_BE/conversations.properties b/nl_BE/conversations.properties
index bb9c06c..e906dfc 100644
--- a/nl_BE/conversations.properties
+++ b/nl_BE/conversations.properties
@@ -61,15 +61,15 @@ topicCleared=%1$S heeft het onderwerp leeggemaakt.
 #   nickname in a conversation.
 #   %1$S is the old nick.
 #   %2$S is the new nick.
-nickSet=%1$S is 

[tor-commits] [translation/torbutton-aboutdialogdtd] Update translations for torbutton-aboutdialogdtd

2016-03-21 Thread translation
commit 743bc4888157b28002ab0d362c874752e5717bd2
Author: Translation commit bot 
Date:   Mon Mar 21 17:16:31 2016 +

Update translations for torbutton-aboutdialogdtd
---
 bg/aboutdialog.dtd|  2 +-
 hr_HR/aboutdialog.dtd | 22 +++---
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/bg/aboutdialog.dtd b/bg/aboutdialog.dtd
index c7b24be..0646216 100644
--- a/bg/aboutdialog.dtd
+++ b/bg/aboutdialog.dtd
@@ -16,4 +16,4 @@
 
 
 
-
+
diff --git a/hr_HR/aboutdialog.dtd b/hr_HR/aboutdialog.dtd
index 5099ad7..9cd366d 100644
--- a/hr_HR/aboutdialog.dtd
+++ b/hr_HR/aboutdialog.dtd
@@ -1,19 +1,19 @@
-
+
 
-
-
+
+
 
-
+
 
-
-
+
+
 
-
+
 
 
-
+
 
-
+
 
-
-
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-contactsproperties] Update translations for tor-messenger-contactsproperties

2016-03-21 Thread translation
commit 17dcb5d02c8d7c336b4a6d5ff6271f1829693618
Author: Translation commit bot 
Date:   Mon Mar 21 17:21:54 2016 +

Update translations for tor-messenger-contactsproperties
---
 hr_HR/contacts.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hr_HR/contacts.properties b/hr_HR/contacts.properties
index 33af79c..9a3f338 100644
--- a/hr_HR/contacts.properties
+++ b/hr_HR/contacts.properties
@@ -5,4 +5,4 @@
 # LOCALIZATION NOTE (defaultGroup):
 # This is the name of the group that will automatically be created when adding 
a
 # buddy without specifying a group.
-defaultGroup=Contacts
+defaultGroup=Kontakti

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-perl5lib] Update translations for tails-perl5lib

2016-03-21 Thread translation
commit f0a23a071a1ff288c0d3029d99000f7afd91e925
Author: Translation commit bot 
Date:   Mon Mar 21 17:13:48 2016 +

Update translations for tails-perl5lib
---
 ar.po| 2 +-
 az.po| 6 +++---
 bg.po| 4 ++--
 bn.po| 6 +++---
 ca.po| 2 +-
 cs.po| 4 ++--
 cy.po| 2 +-
 da.po| 6 +++---
 de.po| 4 ++--
 el.po| 2 +-
 en_GB.po | 2 +-
 eo.po| 6 +++---
 es.po| 2 +-
 es_AR.po | 6 +++---
 es_MX.po | 6 +++---
 eu.po| 6 +++---
 fa.po| 4 ++--
 fi.po| 2 +-
 fil.po   | 6 +++---
 fr.po| 4 ++--
 fr_CA.po | 4 ++--
 fy.po| 6 +++---
 gl.po| 6 +++---
 he.po| 6 +++---
 hr_HR.po | 8 
 hu.po| 4 ++--
 ia.po| 6 +++---
 id.po| 6 +++---
 is.po| 6 +++---
 it.po| 4 ++--
 ja.po| 2 +-
 km.po| 6 +++---
 ko.po| 2 +-
 ko_KR.po | 6 +++---
 ku_IQ.po | 6 +++---
 ky.po| 6 +++---
 lb.po| 4 ++--
 lt.po| 4 ++--
 lv.po| 6 +++---
 mr.po| 4 ++--
 ms_MY.po | 6 +++---
 my.po| 6 +++---
 nb.po| 4 ++--
 nl.po| 4 ++--
 nl_BE.po | 6 +++---
 nn.po| 2 +-
 pa.po| 6 +++---
 pl.po| 4 ++--
 pt.po| 6 +++---
 pt_BR.po | 4 ++--
 ro.po| 2 +-
 ru.po| 4 ++--
 si_LK.po | 6 +++---
 sk.po| 6 +++---
 sk_SK.po | 6 +++---
 sl_SI.po | 6 +++---
 sq.po| 6 +++---
 sr.po| 6 +++---
 sv.po| 4 ++--
 ta.po| 4 ++--
 th.po| 6 +++---
 tr.po| 4 ++--
 uk.po| 2 +-
 ur_PK.po | 4 ++--
 vi.po| 6 +++---
 zh_CN.po | 4 ++--
 zh_HK.po | 6 +++---
 zh_TW.po | 4 ++--
 68 files changed, 159 insertions(+), 159 deletions(-)

diff --git a/ar.po b/ar.po
index 0fa6d9a..cb04373 100644
--- a/ar.po
+++ b/ar.po
@@ -11,7 +11,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-02-03 15:35+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Ahmed Alhammadi <66222...@gmail.com>\n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/az.po b/az.po
index 0fa06d2..0f9edbb 100644
--- a/az.po
+++ b/az.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-12 08:13+\n"
+"POT-Creation-Date: 2016-01-25 16:59+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Azerbaijani 
(http://www.transifex.com/otf/torproject/language/az/)\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
 
 #: ../lib/Tails/RunningSystem.pm:159
 msgid "Error"
-msgstr ""
+msgstr "Xəta"
 
 #: ../lib/Tails/RunningSystem.pm:161
 msgid ""
diff --git a/bg.po b/bg.po
index 0436ae0..b328f5c 100644
--- a/bg.po
+++ b/bg.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-12 15:38+\n"
+"POT-Creation-Date: 2016-01-25 16:59+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tsvetan Nikolov \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bn.po b/bn.po
index b764277..875e365 100644
--- a/bn.po
+++ b/bn.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-12 08:13+\n"
+"POT-Creation-Date: 2016-01-25 16:59+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Bengali 
(http://www.transifex.com/otf/torproject/language/bn/)\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
 
 #: ../lib/Tails/RunningSystem.pm:159
 msgid "Error"
-msgstr ""
+msgstr "সমস্যা"
 
 #: ../lib/Tails/RunningSystem.pm:161
 msgid ""
diff --git a/ca.po b/ca.po
index 0327e01..2cb0588 100644
--- a/ca.po
+++ b/ca.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2016-01-25 16:59+0100\n"
-"PO-Revision-Date: 2016-03-15 09:38+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Carlos Marin \n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cs.po b/cs.po
index bb7c1aa..9eeb162 100644
--- a/cs.po
+++ b/cs.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2016-01-11 15:40+0100\n"
-"PO-Revision-Date: 2016-01-18 15:40+\n"
+"POT-Creation-Date: 2016-01-25 

[tor-commits] [translation/tor-messenger-commandsproperties] Update translations for tor-messenger-commandsproperties

2016-03-21 Thread translation
commit 6505e4e03734b95c0cf5649e82171b943e30d833
Author: Translation commit bot 
Date:   Mon Mar 21 17:21:15 2016 +

Update translations for tor-messenger-commandsproperties
---
 hr_HR/commands.properties | 22 +++---
 ko/commands.properties|  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/hr_HR/commands.properties b/hr_HR/commands.properties
index d4e3a91..fdb680b 100644
--- a/hr_HR/commands.properties
+++ b/hr_HR/commands.properties
@@ -4,24 +4,24 @@
 
 # LOCALIZATION NOTE (commands):
 #  %S is a comma separated list of command names.
-commands=Commands: %S.\nUse /help command for more information.
+commands=Naredbe: %S.\nKoristite /help naredba za više informacija.
 # LOCALIZATION NOTE (noCommand, noHelp):
 #  %S is the command name the user typed.
-noCommand=No '%S' command.
-noHelp=No help message for the '%S' command, sorry!
+noCommand=Nema '%S' naredbe.
+noHelp=Nema poruke pomoći za '%S' naredbu, žao nam je!
 
-sayHelpString=say message: send a message without processing commands.
-rawHelpString=raw message: send a message without escaping HTML 
entities.
-helpHelpString=help name: show the help message for the name 
command, or the list of possible commands when used without parameter.
+sayHelpString=say poruka: pošalji poruku bez naredbi obrade.
+rawHelpString=raw poruka: pošalji poruku bez izbjegavanja HTML 
entiteta.
+helpHelpString=help ime: prikaži poruku pomoći za ime 
naredbu, ili popis mogućih naredbi kad je korišteno bez parametra.
 
 # LOCALIZATION NOTE (statusCommand):
 #  %1$S is replaced with a status command name
 #   (one of "back", "away", "busy", "dnd", or "offline").
 #  %2$S is replaced with the localized version of that status type
 #   (one of the 5 strings below).
-statusCommand=%1$S status message: set the status to %2$S with an 
optional status message.
-back=available
-away=away
-busy=unavailable
-dnd=unavailable
+statusCommand=%1$S poruka stanja: postavi status na %2$S s opcionalno 
porukom stanja.
+back=dostupno
+away=odsutno
+busy=nedostupno
+dnd=nedostupno
 offline=offline
diff --git a/ko/commands.properties b/ko/commands.properties
index 5d595e9..6755bf9 100644
--- a/ko/commands.properties
+++ b/ko/commands.properties
@@ -4,7 +4,7 @@
 
 # LOCALIZATION NOTE (commands):
 #  %S is a comma separated list of command names.
-commands=Commands: %S.\nUse /help command for more information.
+commands=명령: %S.\n자세한 정보는 /help 명령을 
사용하세요.
 # LOCALIZATION NOTE (noCommand, noHelp):
 #  %S is the command name the user typed.
 noCommand='%S' 명령이 없습니다.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-authproperties] Update translations for tor-messenger-authproperties

2016-03-21 Thread translation
commit 9737c1105392f0b82438b8bdc5cbf0f3c4953d73
Author: Translation commit bot 
Date:   Mon Mar 21 17:20:37 2016 +

Update translations for tor-messenger-authproperties
---
 az/auth.properties|  2 +-
 bn/auth.properties|  2 +-
 eo/auth.properties|  2 +-
 es_AR/auth.properties |  2 +-
 es_MX/auth.properties |  2 +-
 et/auth.properties|  2 +-
 eu/auth.properties|  2 +-
 fil/auth.properties   |  2 +-
 fy/auth.properties|  2 +-
 gl/auth.properties|  2 +-
 hi/auth.properties|  2 +-
 hr_HR/auth.properties | 24 
 is/auth.properties|  2 +-
 km/auth.properties|  2 +-
 mr/auth.properties|  2 +-
 ne/auth.properties|  2 +-
 pa/auth.properties|  2 +-
 si_LK/auth.properties |  2 +-
 sk_SK/auth.properties |  2 +-
 sl/auth.properties|  2 +-
 sr/auth.properties|  2 +-
 ta/auth.properties|  2 +-
 th/auth.properties|  2 +-
 uz/auth.properties|  2 +-
 zh_HK/auth.properties |  2 +-
 25 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/az/auth.properties b/az/auth.properties
index f76c719..a033857 100644
--- a/az/auth.properties
+++ b/az/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Oldu
diff --git a/bn/auth.properties b/bn/auth.properties
index f76c719..95bd23a 100644
--- a/bn/auth.properties
+++ b/bn/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=সমাপ্ত
diff --git a/eo/auth.properties b/eo/auth.properties
index f76c719..f2ee16d 100644
--- a/eo/auth.properties
+++ b/eo/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Preta
diff --git a/es_AR/auth.properties b/es_AR/auth.properties
index f76c719..a851ed4 100644
--- a/es_AR/auth.properties
+++ b/es_AR/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Hecho
diff --git a/es_MX/auth.properties b/es_MX/auth.properties
index f76c719..a851ed4 100644
--- a/es_MX/auth.properties
+++ b/es_MX/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Hecho
diff --git a/et/auth.properties b/et/auth.properties
index f76c719..7e528c0 100644
--- a/et/auth.properties
+++ b/et/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Valmis
diff --git a/eu/auth.properties b/eu/auth.properties
index f76c719..e4f335e 100644
--- a/eu/auth.properties
+++ b/eu/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 
identity.
 auth.success=Verifying your contact's identity completed successfully.
 auth.successThem=Your contact has successfully verified your identity. You may 
want to verify their identity as well by asking your own question.
 auth.fail=Failed to verify your contact's identity.
-auth.done=Done
+auth.done=Eginda
diff --git a/fil/auth.properties b/fil/auth.properties
index f76c719..6976fd2 100644
--- a/fil/auth.properties
+++ b/fil/auth.properties
@@ -9,4 +9,4 @@ auth.error=An error occurred while verifying your contact's 

[tor-commits] [translation/tor-messenger-authdtd] Update translations for tor-messenger-authdtd

2016-03-21 Thread translation
commit 295368dbee9d93b2fc9d1de3469b23e5a24e57d6
Author: Translation commit bot 
Date:   Mon Mar 21 17:19:40 2016 +

Update translations for tor-messenger-authdtd
---
 af/auth.dtd  |  2 +-
 am/auth.dtd  |  4 ++--
 ast/auth.dtd |  4 ++--
 az/auth.dtd  |  8 
 be/auth.dtd  |  8 
 bn/auth.dtd  |  6 +++---
 br/auth.dtd  |  2 +-
 bs/auth.dtd  |  8 
 cv/auth.dtd  |  4 ++--
 cy/auth.dtd  |  6 +++---
 eo/auth.dtd  |  8 
 es_AR/auth.dtd   |  6 +++---
 es_CL/auth.dtd   |  2 +-
 es_MX/auth.dtd   |  6 +++---
 et/auth.dtd  |  6 +++---
 eu/auth.dtd  |  2 +-
 fil/auth.dtd |  6 +++---
 fo/auth.dtd  |  8 
 fy/auth.dtd  |  6 +++---
 ga/auth.dtd  |  2 +-
 gl/auth.dtd  |  8 
 gu/auth.dtd  |  4 ++--
 gu_IN/auth.dtd   |  2 +-
 hi/auth.dtd  |  8 
 hr/auth.dtd  |  8 
 hr_HR/auth.dtd   | 42 +-
 ia/auth.dtd  |  6 +++---
 is/auth.dtd  |  8 
 kk/auth.dtd  |  2 +-
 km/auth.dtd  |  8 
 kn/auth.dtd  |  4 ++--
 ko_KR/auth.dtd   |  8 
 ky/auth.dtd  |  4 ++--
 lo/auth.dtd  |  6 +++---
 lt/auth.dtd  |  2 +-
 mk/auth.dtd  |  4 ++--
 mr/auth.dtd  |  2 +-
 ms_MY/auth.dtd   |  8 
 my/auth.dtd  |  8 
 pa/auth.dtd  |  8 
 ru@petr1708/auth.dtd |  6 +++---
 sco/auth.dtd |  2 +-
 si_LK/auth.dtd   |  8 
 sk_SK/auth.dtd   |  8 
 sl/auth.dtd  |  8 
 sl_SI/auth.dtd   |  8 
 sr/auth.dtd  |  8 
 sr@latin/auth.dtd|  6 +++---
 ta/auth.dtd  |  8 
 th/auth.dtd  |  8 
 uz/auth.dtd  |  6 +++---
 vi/auth.dtd  |  8 
 zh_HK/auth.dtd   |  6 +++---
 53 files changed, 172 insertions(+), 172 deletions(-)

diff --git a/af/auth.dtd b/af/auth.dtd
index 8df5727..c823c1c 100644
--- a/af/auth.dtd
+++ b/af/auth.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/am/auth.dtd b/am/auth.dtd
index 8df5727..d16e5b8 100644
--- a/am/auth.dtd
+++ b/am/auth.dtd
@@ -1,7 +1,7 @@
 
 
-
-
+
+
 
 
 
diff --git a/ast/auth.dtd b/ast/auth.dtd
index 8df5727..fbbdd4a 100644
--- a/ast/auth.dtd
+++ b/ast/auth.dtd
@@ -2,8 +2,8 @@
 
 
 
-
-
+
+
 
 
 
diff --git a/az/auth.dtd b/az/auth.dtd
index 8df5727..7116e0d 100644
--- a/az/auth.dtd
+++ b/az/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
-
-
-
+
+
+
+
 
 
 
diff --git a/be/auth.dtd b/be/auth.dtd
index 8df5727..19fa57f 100644
--- a/be/auth.dtd
+++ b/be/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
-
-
-
+
+
+
+
 
 
 
diff --git a/bn/auth.dtd b/bn/auth.dtd
index 8df5727..6f051ac 100644
--- a/bn/auth.dtd
+++ b/bn/auth.dtd
@@ -1,9 +1,9 @@
 
 
 
-
-
-
+
+
+
 
 
 
diff --git a/br/auth.dtd b/br/auth.dtd
index 8df5727..9332b5d 100644
--- a/br/auth.dtd
+++ b/br/auth.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/bs/auth.dtd b/bs/auth.dtd
index 8df5727..cbe5c09 100644
--- a/bs/auth.dtd
+++ b/bs/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
-
-
-
+
+
+
+
 
 
 
diff --git a/cv/auth.dtd b/cv/auth.dtd
index 8df5727..9a01d2e 100644
--- a/cv/auth.dtd
+++ b/cv/auth.dtd
@@ -2,8 +2,8 @@
 
 
 
-
-
+
+
 
 
 
diff --git a/cy/auth.dtd b/cy/auth.dtd
index 3891462..2b80e12 100644
--- a/cy/auth.dtd
+++ b/cy/auth.dtd
@@ -1,9 +1,9 @@
 
 
 
-
-
-
+
+
+
 
 
 
diff --git a/eo/auth.dtd b/eo/auth.dtd
index 8df5727..661a0c7 100644
--- a/eo/auth.dtd
+++ b/eo/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
-
-
-
+
+
+
+
 
 
 
diff --git a/es_AR/auth.dtd b/es_AR/auth.dtd
index 8df5727..8cd0dc8 100644
--- a/es_AR/auth.dtd
+++ b/es_AR/auth.dtd
@@ -1,8 +1,8 @@
 
 
-
-
-
+
+
+
 
 
 
diff --git a/es_CL/auth.dtd b/es_CL/auth.dtd
index 8df5727..23834a5 100644
--- a/es_CL/auth.dtd
+++ b/es_CL/auth.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/es_MX/auth.dtd b/es_MX/auth.dtd
index 8df5727..8cd0dc8 100644
--- a/es_MX/auth.dtd
+++ b/es_MX/auth.dtd
@@ -1,8 +1,8 @@
 
 
-
-
-
+
+
+
 
 
 
diff --git a/et/auth.dtd b/et/auth.dtd
index 8df5727..bd372c0 100644
--- a/et/auth.dtd
+++ b/et/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
+
 
-
-
+
+
 
 
 
diff --git a/eu/auth.dtd b/eu/auth.dtd
index 39cb82a..f6d48ec 100644
--- a/eu/auth.dtd
+++ b/eu/auth.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/fil/auth.dtd b/fil/auth.dtd
index 8df5727..ccbd4cb 100644
--- a/fil/auth.dtd
+++ b/fil/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
+
 
-
-
+
+
 
 
 
diff --git a/fo/auth.dtd b/fo/auth.dtd
index 8df5727..852e155 100644
--- a/fo/auth.dtd
+++ b/fo/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
-
-
-
+
+
+
+
 
 
 
diff --git a/fy/auth.dtd b/fy/auth.dtd
index 8df5727..2c3871b 100644
--- a/fy/auth.dtd
+++ b/fy/auth.dtd
@@ -1,9 +1,9 @@
 
 
-
+
 
-
-
+
+
 
 
 
diff --git a/ga/auth.dtd b/ga/auth.dtd
index 8df5727..1af9779 100644
--- a/ga/auth.dtd
+++ b/ga/auth.dtd
@@ -1,6 +1,6 @@
 
 
-
+
 
 
 
diff --git a/gl/auth.dtd 

[tor-commits] [translation/tor-messenger-accountsproperties] Update translations for tor-messenger-accountsproperties

2016-03-21 Thread translation
commit 6ed3af1d677164865f4bb298d687b1007d2f8546
Author: Translation commit bot 
Date:   Mon Mar 21 17:18:06 2016 +

Update translations for tor-messenger-accountsproperties
---
 hr_HR/accounts.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hr_HR/accounts.properties b/hr_HR/accounts.properties
index 051ba0d..e44819e 100644
--- a/hr_HR/accounts.properties
+++ b/hr_HR/accounts.properties
@@ -4,6 +4,6 @@
 
 # LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
 # %S is replaced with the name of the account
-passwordPromptTitle=Password for %S
-passwordPromptText=Please enter your password for %S in order to connect it.
-passwordPromptSaveCheckbox=Use Password Manager to remember this password.
+passwordPromptTitle=Lozinka za %S
+passwordPromptText=Molimo Vas unesite svoju lozinku za %S kako bi se spojili.
+passwordPromptSaveCheckbox=Koristi Upravitelj lozinki da zapamti ovu lozinku.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttorproperties] Update translations for torbutton-abouttorproperties

2016-03-21 Thread translation
commit 6aa5e8f3f6b544c8990be806a1fe5eb59d2dad99
Author: Translation commit bot 
Date:   Mon Mar 21 17:17:21 2016 +

Update translations for torbutton-abouttorproperties
---
 hr_HR/abouttor.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hr_HR/abouttor.properties b/hr_HR/abouttor.properties
index d607324..4873d80 100644
--- a/hr_HR/abouttor.properties
+++ b/hr_HR/abouttor.properties
@@ -2,19 +2,19 @@
 # See LICENSE for licensing information.
 # vim: set sw=2 sts=2 ts=8 et:
 
-aboutTor.searchSP.privacy=Search securely with Startpage.
+aboutTor.searchSP.privacy=Pretraži sigurno sa Startpage-om.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
 # The following string is a link which replaces %2$S above.
 aboutTor.searchSP.search.link=https://startpage.com/
 
-aboutTor.searchDDG.privacy=Search securely with DuckDuckGo.
+aboutTor.searchDDG.privacy=Pretraži sigurno s DuckDuckGo.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
 # The following string is a link which replaces %2$S above.
 aboutTor.searchDDG.search.link=https://duckduckgo.com/
 
-aboutTor.searchDC.privacy=Search securely with Disconnect.me.
+aboutTor.searchDC.privacy=Pretraži sigurno s Disconnect.me.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchDC.privacy.link=https://disconnect.me/privacy
 # The following string is a link which replaces %2$S above.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor_animation_completed] Update translations for tor_animation_completed

2016-03-21 Thread translation
commit 6c3ef4ecf6074e279879265c8276019e35a55457
Author: Translation commit bot 
Date:   Mon Mar 21 17:16:03 2016 +

Update translations for tor_animation_completed
---
 ca.srt| 52 ++--
 cs.srt| 52 ++--
 eu.srt| 52 ++--
 fa.srt| 52 ++--
 pl.srt| 52 ++--
 sq.srt| 52 ++--
 zh_HK.srt | 52 ++--
 7 files changed, 182 insertions(+), 182 deletions(-)

diff --git a/ca.srt b/ca.srt
index 80fa4a2..c8a01d7 100644
--- a/ca.srt
+++ b/ca.srt
@@ -40,127 +40,127 @@ i molta més informació
 sobre vosaltres i la vostra vida. 
 
 10
-00:00:29,620 --> 00:00:32,460
+00:00:29,200 --> 00:00:31,500
 la qual probablement no teníeu intenció
 de compartir amb desconeguts,
 
 11
-00:00:32,920 --> 00:00:35,840
+00:00:31,700 --> 00:00:34,000
 que podrien fer servir fàcilment aquesta informació
 per abusar de vosaltres.
 
 12
-00:00:36,220 --> 00:00:38,120
+00:00:34,500 --> 00:00:37,000
 Però això no passa si esteu fent servir Tor!
 
 13
-00:00:39,140 --> 00:00:42,840
+00:00:37,140 --> 00:00:40,840
 El navegador Tor protegeix la nostra privadesa
 i la nostra identitat a Internet. 
 
 14
-00:00:43,560 --> 00:00:46,760
+00:00:41,560 --> 00:00:44,760
 Tor assegura la teva connexió
 amb tres capes d'encriptatge.
 
 15
-00:00:46,940 --> 00:00:51,760
+00:00:44,940 --> 00:00:49,760
 i la passa per tres servidors duts a terme
 voluntàriament a tot el món, 
 
 16
-00:00:52,280 --> 00:00:55,520
+00:00:50,280 --> 00:00:53,520
 que ens permeten comunicar-nos
 de manera anònima per Internet. 
 
 17
-00:00:58,560 --> 00:01:00,280
+00:00:56,560 --> 00:00:58,280
 Tor també protegeix la nostra informació
 
 18
-00:01:00,400 --> 00:01:03,900
+00:00:58,400 --> 00:01:01,900
 dels objectius del govern o les grans empreses
 i la vigilància massiva. 
 
 19
-00:01:04,880 --> 00:01:09,340
+00:01:02,880 --> 00:01:07,340
 Potser viviu en un país repressiu
 que intenta controlar i vigilar Internet.
 
 20
-00:01:09,900 --> 00:01:13,800
+00:01:07,900 --> 00:01:11,800
 O potser no voleu que les grans empreses
 s'aprofitin de la vostra informació personal. 
 
 21
-00:01:14,880 --> 00:01:17,640
+00:01:12,880 --> 00:01:15,640
 Tot fa que tots els seus usuaris
 siguin iguals
 
 22
-00:01:17,920 --> 00:01:20,800
+00:01:15,920 --> 00:01:18,800
 cosa que confon l'observador
 i us fa anònims.
 
 23
-00:01:21,500 --> 00:01:24,980
+00:01:19,500 --> 00:01:22,980
 Per tant, quanta més gent faci servir la xarxa Tor
 més forta es farà
 
 24
-00:01:25,140 --> 00:01:29,800
+00:01:23,140 --> 00:01:27,800
 ja que és més fàcil amagar-se en una multitud
 de gent que és idèntica.
 
 25
-00:01:30,700 --> 00:01:33,240
+00:01:28,700 --> 00:01:31,240
 Podeu sortejar la censura
 sense preocupar-vos que
 
 26
-00:01:33,400 --> 00:01:36,100
+00:01:31,400 --> 00:01:34,100
 el censor sàpigue el que feu
 a internet. 
 
 
 27
-00:01:38,540 --> 00:01:41,440
+00:01:36,540 --> 00:01:39,440
 Els anuncis no us seguiran
 allà on aneu durant mesos,
 
 28
-00:01:41,640 --> 00:01:43,300
+00:01:39,640 --> 00:01:41,300
 començant per quan vau fer
 clic per primer cop en un producte.
 
 29
-00:01:45,880 --> 00:01:49,380
+00:01:43,880 --> 00:01:47,380
 Fent servir Tor, els llocs que visiteu
 no sabran ni qui sou, 
 
 30
-00:01:49,540 --> 00:01:51,760
+00:01:47,540 --> 00:01:49,760
 ni de quina part del món
 els esteu visitant
 
 31
-00:01:51,920 --> 00:01:53,920
+00:01:49,920 --> 00:01:51,920
 a no ser que us identifiqueu i els ho digueu.
 
 32
-00:01:56,200 --> 00:01:57,840
+00:01:54,200 --> 00:01:55,840
 Baixant i usant Tor
 
 33
-00:01:58,200 --> 00:02:00,560
+00:01:56,200 --> 00:01:58,560
 podeu protegir la gent
 que necessita anonimat.
 
 34
-00:02:00,880 --> 00:02:03,640
+00:01:58,880 --> 00:02:01,640
 com els activistes, periodistes i bloggers.
 
 35
-00:02:04,000 --> 00:02:09,000
+00:02:02,000 --> 00:02:07,000
 Baixa i utilitza Tor! O executa un relé!
 
diff --git a/cs.srt b/cs.srt
index 45aa820..86ba61d 100644
--- a/cs.srt
+++ b/cs.srt
@@ -35,106 +35,106 @@ všechny stránky, co jste navštívil, prohlížeč, 
který používáte,
 a ještě mnohem více informací o Vás a Vašem životě,
 
 10
-00:00:29,620 --> 00:00:32,460
+00:00:29,200 --> 00:00:31,500
 které byste pravděpodobně nechtěli sdílet se zcela neznámými lidmi,
 
 11
-00:00:32,920 --> 00:00:35,840
+00:00:31,700 --> 00:00:34,000
 kteří mohou tato data krásně použít, aby Vás využili,
 
 12
-00:00:36,220 --> 00:00:38,120
+00:00:34,500 --> 00:00:37,000
 Ale ne, pokud používate Tor!
 
 13
-00:00:39,140 --> 00:00:42,840
+00:00:37,140 --> 00:00:40,840
 Prohlížeč Tor chrání naše soukromí a identitu na 

[tor-commits] [translation/tor-and-https_completed] Update translations for tor-and-https_completed

2016-03-21 Thread translation
commit c66de51f7e38b9e9a93aa9908584920cedaf21b1
Author: Translation commit bot 
Date:   Mon Mar 21 17:15:09 2016 +

Update translations for tor-and-https_completed
---
 ar.po| 38 +++---
 az.po|  8 
 bg.po| 38 +++---
 ca.po| 42 +-
 cs.po|  4 ++--
 da.po|  4 ++--
 de.po|  4 ++--
 el.po| 38 +++---
 en_GB.po |  4 ++--
 es.po|  4 ++--
 eu.po|  4 ++--
 fa.po| 38 +++---
 fi.po|  4 ++--
 fo.po|  4 ++--
 fr.po|  2 +-
 fr_CA.po | 42 +-
 he.po|  4 ++--
 hr_HR.po |  8 
 hu.po|  4 ++--
 id.po| 10 +-
 it.po|  6 +++---
 ja.po|  6 +++---
 ka.po|  2 +-
 km.po| 38 +++---
 ko.po|  4 ++--
 ko_KR.po |  4 ++--
 lt.po|  4 ++--
 lv.po| 38 +++---
 nb.po| 42 +-
 nl.po|  2 +-
 nn.po| 38 +++---
 pl.po| 40 
 pt.po|  2 +-
 pt_BR.po |  2 +-
 ro.po|  8 
 ru.po| 10 +-
 sk.po| 40 
 sk_SK.po |  8 
 sl_SI.po |  4 ++--
 sq.po|  4 ++--
 sr.po|  4 ++--
 sv.po| 40 
 th.po| 42 +-
 tr.po|  6 +++---
 uk.po| 38 +++---
 vi.po|  2 +-
 zh_CN.po |  8 
 zh_TW.po |  2 +-
 48 files changed, 374 insertions(+), 374 deletions(-)

diff --git a/ar.po b/ar.po
index ec1bfc1..f5d533b 100644
--- a/ar.po
+++ b/ar.po
@@ -5,10 +5,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
-"POT-Creation-Date: 2014-05-24 18:11+\n"
-"PO-Revision-Date: 2014-07-04 15:14+\n"
+"POT-Creation-Date: 2014-07-17 14:23+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: 0xidz \n"
-"Language-Team: Arabic 
(http://www.transifex.com/projects/p/torproject/language/ar/)\n"
+"Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -31,107 +31,107 @@ msgstr "Tor و HTTPS"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Site.com"
 msgstr "Site.com"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "user / pw"
 msgstr "مستعمل / كلمة المرور"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "data"
 msgstr "معطيات"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "location"
 msgstr "موقع"
 
 #. (itstool) path: defs/text
 #. Keep it short: 3em max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "WiFi"
 msgstr "وايفاي"
 
 #. (itstool) path: defs/text
 #. Keep it short: 4em max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "ISP"
 msgstr "مزود"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Hacker"
 msgstr "هاكر"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Lawyer"
 msgstr "محام"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Sysadmin"
 msgstr "مديرأنظمة"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Police"
 msgstr "شرطة"
 
 #. (itstool) path: defs/text
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "NSA"
 msgstr "وكالة الأمن القومي"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Tor relay"
 msgstr "تحويلة Tor"
 
 #. (itstool) path: defs/text
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Key"
 msgstr "مفتاح"
 
 #. (itstool) path: defs/text
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Internet connection"
 msgstr "إتصال 

[tor-commits] [translation/tor-and-https] Update translations for tor-and-https

2016-03-21 Thread translation
commit cf728e687ffdef81cf0d6ef9ed08f6ee2c77015d
Author: Translation commit bot 
Date:   Mon Mar 21 17:14:41 2016 +

Update translations for tor-and-https
---
 ar.po| 38 +++---
 az.po|  8 
 bg.po| 38 +++---
 bn.po| 38 +++---
 ca.po| 42 +-
 cs.po|  4 ++--
 cy.po|  2 +-
 da.po|  4 ++--
 de.po|  4 ++--
 el.po| 38 +++---
 en_GB.po |  4 ++--
 eo.po|  4 ++--
 es.po|  4 ++--
 es_AR.po |  2 +-
 es_MX.po |  2 +-
 eu.po|  4 ++--
 fa.po| 38 +++---
 fi.po|  4 ++--
 fil.po   |  4 ++--
 fo.po|  4 ++--
 fr.po|  2 +-
 fr_CA.po | 42 +-
 fy.po|  4 ++--
 gl.po|  4 ++--
 he.po|  4 ++--
 hi.po|  4 ++--
 hr.po|  2 +-
 hr_HR.po | 38 +++---
 hu.po|  4 ++--
 id.po| 10 +-
 it.po|  6 +++---
 ja.po|  6 +++---
 ka.po|  2 +-
 km.po| 38 +++---
 kn.po|  4 ++--
 ko.po|  4 ++--
 ko_KR.po |  4 ++--
 lo.po|  4 ++--
 lt.po|  4 ++--
 lv.po| 38 +++---
 ms_MY.po |  4 ++--
 nb.po| 42 +-
 nl.po|  2 +-
 nl_BE.po |  2 +-
 nn.po| 38 +++---
 pl.po| 40 
 pt.po|  2 +-
 pt_BR.po |  2 +-
 ro.po|  8 
 ru.po| 10 +-
 sk.po| 40 
 sk_SK.po |  8 
 sl.po|  4 ++--
 sl_SI.po |  4 ++--
 sq.po|  4 ++--
 sr.po|  4 ++--
 sv.po| 40 
 ta.po|  4 ++--
 th.po| 42 +-
 tr.po|  6 +++---
 uk.po| 38 +++---
 ur_PK.po |  4 ++--
 vi.po|  2 +-
 zh_CN.po |  8 
 zh_HK.po | 38 +++---
 zh_TW.po |  2 +-
 66 files changed, 454 insertions(+), 454 deletions(-)

diff --git a/ar.po b/ar.po
index ec1bfc1..f5d533b 100644
--- a/ar.po
+++ b/ar.po
@@ -5,10 +5,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
-"POT-Creation-Date: 2014-05-24 18:11+\n"
-"PO-Revision-Date: 2014-07-04 15:14+\n"
+"POT-Creation-Date: 2014-07-17 14:23+\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: 0xidz \n"
-"Language-Team: Arabic 
(http://www.transifex.com/projects/p/torproject/language/ar/)\n"
+"Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -31,107 +31,107 @@ msgstr "Tor و HTTPS"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Site.com"
 msgstr "Site.com"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "user / pw"
 msgstr "مستعمل / كلمة المرور"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "data"
 msgstr "معطيات"
 
 #. (itstool) path: defs/text
 #. Keep it short: 7em max. Seven times the capital letter "M".
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "location"
 msgstr "موقع"
 
 #. (itstool) path: defs/text
 #. Keep it short: 3em max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "WiFi"
 msgstr "وايفاي"
 
 #. (itstool) path: defs/text
 #. Keep it short: 4em max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "ISP"
 msgstr "مزود"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Hacker"
 msgstr "هاكر"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Lawyer"
 msgstr "محام"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Sysadmin"
 msgstr "مديرأنظمة"
 
 #. (itstool) path: defs/text
 #. Keep it short: 8em is ok, 9em is max.
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "Police"
 msgstr "شرطة"
 
 #. (itstool) path: defs/text
-#: C/tor-and-https.svg:346
+#: C/tor-and-https.svg:363
 #, no-wrap
 msgid "NSA"
 msgstr "وكالة الأمن القومي"
 
 #. (itstool) path: defs/text
 

[tor-commits] [translation/tails-iuk] Update translations for tails-iuk

2016-03-21 Thread translation
commit 16a185355750bcb6e77c6af4efcc4abef5ad6e34
Author: Translation commit bot 
Date:   Mon Mar 21 17:12:54 2016 +

Update translations for tails-iuk
---
 ar.po|  4 ++--
 az.po|  4 ++--
 be.po|  4 ++--
 bg.po|  4 ++--
 bn.po|  4 ++--
 ca.po|  4 ++--
 cs.po|  4 ++--
 cy.po|  4 ++--
 da.po|  4 ++--
 de.po|  4 ++--
 el.po|  4 ++--
 en_GB.po |  4 ++--
 eo.po|  4 ++--
 es.po|  4 ++--
 es_AR.po |  4 ++--
 es_CO.po |  4 ++--
 es_MX.po |  4 ++--
 eu.po|  4 ++--
 fa.po|  4 ++--
 fi.po|  4 ++--
 fil.po   |  4 ++--
 fr.po|  4 ++--
 fr_CA.po |  4 ++--
 gl.po|  4 ++--
 he.po|  8 +++
 hr.po|  4 ++--
 hr_HR.po | 82 
 hu.po|  4 ++--
 id.po|  8 +++
 it.po|  4 ++--
 ja.po|  4 ++--
 km.po|  4 ++--
 ko.po|  4 ++--
 ko_KR.po |  4 ++--
 lo.po|  4 ++--
 lt.po|  4 ++--
 lv.po|  4 ++--
 ms_MY.po |  4 ++--
 nb.po|  4 ++--
 nl.po|  4 ++--
 nl_BE.po |  4 ++--
 nn.po|  4 ++--
 pa.po|  4 ++--
 pl.po|  8 +++
 pt.po|  4 ++--
 pt_BR.po |  4 ++--
 ro.po|  4 ++--
 ru.po|  4 ++--
 sk.po|  4 ++--
 sk_SK.po |  4 ++--
 sl_SI.po |  4 ++--
 sq.po|  4 ++--
 sr.po|  4 ++--
 sv.po|  4 ++--
 ta.po|  4 ++--
 tr.po|  8 +++
 uk.po|  4 ++--
 ur_PK.po |  4 ++--
 vi.po|  4 ++--
 zh_CN.po |  6 ++---
 zh_HK.po |  4 ++--
 zh_TW.po |  4 ++--
 62 files changed, 172 insertions(+), 172 deletions(-)

diff --git a/ar.po b/ar.po
index 98ccad2..f8a3161 100644
--- a/ar.po
+++ b/ar.po
@@ -15,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-17 09:10+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/az.po b/az.po
index c9711ea..faec8ca 100644
--- a/az.po
+++ b/az.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-17 09:10+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Azerbaijani 
(http://www.transifex.com/otf/torproject/language/az/)\n"
 "MIME-Version: 1.0\n"
diff --git a/be.po b/be.po
index c4717b8..8dc0b77 100644
--- a/be.po
+++ b/be.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-17 09:10+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Belarusian 
(http://www.transifex.com/otf/torproject/language/be/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bg.po b/bg.po
index d9e371b..edf20b1 100644
--- a/bg.po
+++ b/bg.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2016-01-11 13:04+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tsvetan Nikolov \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bn.po b/bn.po
index 94c6339..47c0fb1 100644
--- a/bn.po
+++ b/bn.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-17 09:10+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Bengali 
(http://www.transifex.com/otf/torproject/language/bn/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ca.po b/ca.po
index 8f19ef5..fd5ef70 100644
--- a/ca.po
+++ b/ca.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-29 18:40+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: laia_\n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cs.po b/cs.po
index 72fd26d..c960028 100644
--- a/cs.po
+++ b/cs.po
@@ 

[tor-commits] [translation/tails-iuk_completed] Update translations for tails-iuk_completed

2016-03-21 Thread translation
commit 727a8a9fb319857b4253ea8da86984037e5e8ed2
Author: Translation commit bot 
Date:   Mon Mar 21 17:13:11 2016 +

Update translations for tails-iuk_completed
---
 bg.po| 4 ++--
 ca.po| 4 ++--
 de.po| 4 ++--
 el.po| 4 ++--
 en_GB.po | 4 ++--
 es.po| 4 ++--
 fr.po| 4 ++--
 fr_CA.po | 4 ++--
 he.po| 8 
 hr_HR.po | 4 ++--
 hu.po| 4 ++--
 id.po| 8 
 it.po| 4 ++--
 ja.po| 4 ++--
 ko.po| 4 ++--
 lv.po| 4 ++--
 nb.po| 4 ++--
 nl.po| 4 ++--
 pl.po| 8 
 pt_BR.po | 4 ++--
 ro.po| 4 ++--
 ru.po| 4 ++--
 sv.po| 4 ++--
 tr.po| 8 
 uk.po| 4 ++--
 zh_CN.po | 6 +++---
 zh_TW.po | 4 ++--
 27 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/bg.po b/bg.po
index d9e371b..edf20b1 100644
--- a/bg.po
+++ b/bg.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2016-01-11 13:04+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tsvetan Nikolov \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ca.po b/ca.po
index 8f19ef5..fd5ef70 100644
--- a/ca.po
+++ b/ca.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-29 18:40+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: laia_\n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/de.po b/de.po
index a3e3677..ab2db3a 100644
--- a/de.po
+++ b/de.po
@@ -17,8 +17,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-21 16:32+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: max weber\n"
 "Language-Team: German 
(http://www.transifex.com/otf/torproject/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/el.po b/el.po
index 62d1124..b8c3179 100644
--- a/el.po
+++ b/el.po
@@ -16,8 +16,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2016-02-23 16:21+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: TitanJack \n"
 "Language-Team: Greek (http://www.transifex.com/otf/torproject/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/en_GB.po b/en_GB.po
index 6146a59..55f3903 100644
--- a/en_GB.po
+++ b/en_GB.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2016-02-01 12:48+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/es.po b/es.po
index 7f9286b..4592b68 100644
--- a/es.po
+++ b/es.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-18 18:36+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Edward Navarro\n"
 "Language-Team: Spanish 
(http://www.transifex.com/otf/torproject/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fr.po b/fr.po
index 5ca61c6..1226553a 100644
--- a/fr.po
+++ b/fr.po
@@ -18,8 +18,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"
-"PO-Revision-Date: 2015-12-19 03:35+\n"
+"POT-Creation-Date: 2016-03-07 17:51+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Gwennole Hangard \n"
 "Language-Team: French 
(http://www.transifex.com/otf/torproject/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fr_CA.po b/fr_CA.po
index e08fa7a..08483a8 100644
--- a/fr_CA.po
+++ b/fr_CA.po
@@ -11,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2015-12-16 18:20+0100\n"

[tor-commits] [translation/torbutton-branddtd] Update translations for torbutton-branddtd

2016-03-21 Thread translation
commit 8fabbd481837eaec92ccdad34ac2b97c80af2b23
Author: Translation commit bot 
Date:   Mon Mar 21 17:09:31 2016 +

Update translations for torbutton-branddtd
---
 ast/brand.dtd   |  2 +-
 az/brand.dtd|  2 +-
 bn/brand.dtd|  2 +-
 eo/brand.dtd|  2 +-
 es_CL/brand.dtd |  2 +-
 fy/brand.dtd|  2 +-
 hr/brand.dtd|  2 +-
 hr_HR/brand.dtd | 18 +-
 ko_KR/brand.dtd |  2 +-
 ms_MY/brand.dtd |  2 +-
 pa/brand.dtd|  2 +-
 si_LK/brand.dtd |  2 +-
 sr/brand.dtd|  2 +-
 ta/brand.dtd|  2 +-
 zh_HK/brand.dtd |  2 +-
 15 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/ast/brand.dtd b/ast/brand.dtd
index 8a467b5..4225ac0 100644
--- a/ast/brand.dtd
+++ b/ast/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/az/brand.dtd b/az/brand.dtd
index bd27231..ca1d23e 100644
--- a/az/brand.dtd
+++ b/az/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/bn/brand.dtd b/bn/brand.dtd
index baed062..1f17d18 100644
--- a/bn/brand.dtd
+++ b/bn/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/eo/brand.dtd b/eo/brand.dtd
index e424490..40246a8 100644
--- a/eo/brand.dtd
+++ b/eo/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/es_CL/brand.dtd b/es_CL/brand.dtd
index 250d898..3eb1776 100644
--- a/es_CL/brand.dtd
+++ b/es_CL/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/fy/brand.dtd b/fy/brand.dtd
index fa6df2d..5dbd2c5 100644
--- a/fy/brand.dtd
+++ b/fy/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/hr/brand.dtd b/hr/brand.dtd
index 25a1bc1..c1be555 100644
--- a/hr/brand.dtd
+++ b/hr/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/hr_HR/brand.dtd b/hr_HR/brand.dtd
index 3df1a08..c8f2465 100644
--- a/hr_HR/brand.dtd
+++ b/hr_HR/brand.dtd
@@ -2,14 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
-
-
-
-
+
+
+
+
+
 
 
-
-
-
-
+
+
+
+
diff --git a/ko_KR/brand.dtd b/ko_KR/brand.dtd
index e754256..dce59c3 100644
--- a/ko_KR/brand.dtd
+++ b/ko_KR/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/ms_MY/brand.dtd b/ms_MY/brand.dtd
index ae0a9f8..9e2362c 100644
--- a/ms_MY/brand.dtd
+++ b/ms_MY/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/pa/brand.dtd b/pa/brand.dtd
index 916595d..6b4603f 100644
--- a/pa/brand.dtd
+++ b/pa/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/si_LK/brand.dtd b/si_LK/brand.dtd
index 193f69a..01bb07d 100644
--- a/si_LK/brand.dtd
+++ b/si_LK/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/sr/brand.dtd b/sr/brand.dtd
index 68f07aa..2f68be5 100644
--- a/sr/brand.dtd
+++ b/sr/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/ta/brand.dtd b/ta/brand.dtd
index 561103b..b7ab73f 100644
--- a/ta/brand.dtd
+++ b/ta/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 
diff --git a/zh_HK/brand.dtd b/zh_HK/brand.dtd
index f01a8df..66a569c 100644
--- a/zh_HK/brand.dtd
+++ b/zh_HK/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-
+
 
 
 

___
tor-commits mailing list

[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-03-21 Thread translation
commit cc5e00a989fb85e5383e37b45cede33de30e737a
Author: Translation commit bot 
Date:   Mon Mar 21 17:11:07 2016 +

Update translations for torbutton-torbuttonproperties
---
 hr_HR/torbutton.properties | 132 ++---
 is/torbutton.properties|   2 +-
 2 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/hr_HR/torbutton.properties b/hr_HR/torbutton.properties
index 8ff83b3..346cac1 100644
--- a/hr_HR/torbutton.properties
+++ b/hr_HR/torbutton.properties
@@ -1,79 +1,79 @@
-torbutton.button.tooltip.disabled = Enable Tor
-torbutton.button.tooltip.enabled = Disable Tor
+torbutton.button.tooltip.disabled = Omogući Tor
+torbutton.button.tooltip.enabled = Onemogući Tor
 torbutton.circuit_display.internet = Internet
-torbutton.circuit_display.ip_unknown = IP unknown
-torbutton.circuit_display.onion_site = Onion site
-torbutton.circuit_display.this_browser = This browser
-torbutton.circuit_display.relay = relay
-torbutton.circuit_display.tor_bridge = Bridge
-torbutton.circuit_display.unknown_country = Unknown country
-torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make 
the width and height of your window less distinctive, and thus reduces the 
ability of people to track you online.
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.plugins.disabled = Click to enable plugins
-torbutton.panel.plugins.enabled = Click to disable plugins
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
-extensions.torbut...@torproject.org.description = Torbutton provides a button 
to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.history.warning = Torbutton blocked activity from a tab loaded 
in a different Tor state.\n\nThis is to work around Firefox Bugs 409737 and 
417869.\n\nIf this popup seemed to happen for no reason, one of your tabs is 
attempting to reload itself in the background, and this was blocked.\n\nTo 
reload the tab in this Tor state, hit 'enter' in the URL location box.\n\n
-torbutton.popup.plugin.warning = Torbutton blocked direct Tor load of plugin 
content.\n\nUse Save-As instead.\n\n
-torbutton.popup.confirm_ca_certs = Torbutton Note: It appears you have no 
custom Certificate Authorities. Examining the Certificate Authority list is a 
slow operation and slows down Tor toggle. Would you like to disable the 
isolation of Certificate Authority certificates? (If you don't understand this, 
it is safe to click OK)
-torbutton.popup.ff3.warning = Warning!\n\nTorbutton on Firefox 3 is known to 
leak your timezone and livemarks via Tor.\n\nDo you wish to continue anyway?
-torbutton.popup.toggle.warning = You need to toggle Tor or restart for your 
settings to take effect.
-torbutton.popup.test.success = Tor proxy test successful!
-torbutton.popup.test.failure = Tor proxy test FAILED! Check your proxy and 
Polipo settings.
-torbutton.popup.test.confirm_toggle = The most recent Tor proxy test failed to 
use Tor.\n\nAre you sure you want to enable anyway?\n\nNote: If you have fixed 
the problem, you can rerun the test in the Torbutton Proxy Preferences window 
to eliminate this warning.
-torbutton.popup.test.ff3_notice = Click OK to test Tor proxy settings. This 
test will happen in the background. Please be patient.
-torbutton.panel.label.verified = Tor Verified
-torbutton.popup.test.auto_failed = The automatic Tor proxy test failed to use 
Tor.\n\nAre you sure you want to enable anyway?
-torbutton.prefs.recommended = (recommended)
-torbutton.prefs.optional = (optional)
-torbutton.prefs.crucial = (crucial)
-torbutton.popup.external.title = Download an external file type?
-torbutton.popup.external.app = Tor Browser cannot display this file. You will 
need to open it with another application.\n\n
-torbutton.popup.external.note = Some types of files can cause applications to 
connect to the Internet without using Tor.\n\n
-torbutton.popup.external.suggest = To be safe, you should only open downloaded 
files while offline, or use a Tor Live CD such as Tails.\n
-torbutton.popup.launch = Download file
-torbutton.popup.cancel = Cancel
-torbutton.popup.dontask = Automatically download files from now on
-torbutton.popup.test.no_http_proxy = Tor proxy test: Local HTTP Proxy is 
unreachable. Is Polipo running properly?
-torbutton.popup.captcha.title = Avoid Google Captchas?
-torbutton.popup.captcha.ask = Torbutton detected a Google Captcha. Would you 
like to be redirected to another search engine for this query?
-torbutton.popup.captcha.always = Always perform this action from now on
-torbutton.popup.redirect = Redirect
-torbutton.popup.no_redirect = Don't Redirect
-torbutton.popup.prompted_language = To give you more privacy, Torbutton can 
request the English language version of web pages. This may cause web pages 
that you prefer to read in your native 

[tor-commits] [translation/torbutton-branddtd_completed] Update translations for torbutton-branddtd_completed

2016-03-21 Thread translation
commit fffc4de5ea2998a2974ebbb99211d4364d46dd87
Author: Translation commit bot 
Date:   Mon Mar 21 17:09:55 2016 +

Update translations for torbutton-branddtd_completed
---
 bn/brand.dtd | 1 +
 sr/brand.dtd | 1 +
 2 files changed, 2 insertions(+)

diff --git a/bn/brand.dtd b/bn/brand.dtd
index 54415a5..1f17d18 100644
--- a/bn/brand.dtd
+++ b/bn/brand.dtd
@@ -2,6 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
+
 
 
 
diff --git a/sr/brand.dtd b/sr/brand.dtd
index 12e18a4..2f68be5 100644
--- a/sr/brand.dtd
+++ b/sr/brand.dtd
@@ -2,6 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-brandproperties_completed] Update translations for torbutton-brandproperties_completed

2016-03-21 Thread translation
commit ec39e7d9df78efc56c25bff41c41336090e779ed
Author: Translation commit bot 
Date:   Mon Mar 21 17:08:53 2016 +

Update translations for torbutton-brandproperties_completed
---
 az/brand.properties| 1 +
 eo/brand.properties| 1 +
 es_AR/brand.properties | 1 +
 km/brand.properties| 1 +
 kn/brand.properties| 1 +
 ko_KR/brand.properties | 1 +
 ms_MY/brand.properties | 1 +
 pa/brand.properties| 1 +
 si_LK/brand.properties | 1 +
 sk_SK/brand.properties | 1 +
 sr/brand.properties| 1 +
 ta/brand.properties| 1 +
 th/brand.properties| 1 +
 13 files changed, 13 insertions(+)

diff --git a/az/brand.properties b/az/brand.properties
index a80802f..ecfa120 100644
--- a/az/brand.properties
+++ b/az/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor Brauzer
 brandShortName=Tor Brauzer
 brandFullName=Tor Brauzer
 vendorShortName=Tor Layihəsi
diff --git a/eo/brand.properties b/eo/brand.properties
index 33dec63..db80593 100644
--- a/eo/brand.properties
+++ b/eo/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor krozilo
 brandShortName=Tor krozilo
 brandFullName=Tor krozilo
 vendorShortName=Tor Projektas
diff --git a/es_AR/brand.properties b/es_AR/brand.properties
index 52036ac..500c9a1 100644
--- a/es_AR/brand.properties
+++ b/es_AR/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Buscador Tor
 brandShortName=Tor Browser
 brandFullName=Tor Browser
 vendorShortName=Proyecto Tor
diff --git a/km/brand.properties b/km/brand.properties
index 4e34e1d..0ba4c10 100644
--- a/km/brand.properties
+++ b/km/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor Browser
 brandShortName=Tor Browser
 brandFullName=Tor Browser
 vendorShortName=គម្រោង Tor
diff --git a/kn/brand.properties b/kn/brand.properties
index 089cbdb..59829bf 100644
--- a/kn/brand.properties
+++ b/kn/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=ಟಾರ್ ಬ್ರೌಸರ್
 brandShortName=ಟಾರ್ ಬ್ರೌಸರ್
 brandFullName=ಟಾರ್ ಬ್ರೌಸರ್
 vendorShortName=ಟಾರ್ ಯೋಜನೆ
diff --git a/ko_KR/brand.properties b/ko_KR/brand.properties
index 18381ef..d6a2978 100644
--- a/ko_KR/brand.properties
+++ b/ko_KR/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor 브라우저
 brandShortName=Tor 브라우저
 brandFullName=Tor 브라우저
 vendorShortName=Tor 프로젝트
diff --git a/ms_MY/brand.properties b/ms_MY/brand.properties
index cbbd27f..12d8242 100644
--- a/ms_MY/brand.properties
+++ b/ms_MY/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Pelayar Tor
 brandShortName=Pelayar Tor
 brandFullName=Pelayar Tor
 vendorShortName=Projek Tor
diff --git a/pa/brand.properties b/pa/brand.properties
index 96b21f5..6968fe4 100644
--- a/pa/brand.properties
+++ b/pa/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=ਟੋਰ ਬਰਾਊਜ਼ਰ
 brandShortName=ਟੋਰ ਬਰਾਊਜ਼ਰ
 brandFullName=ਟੋਰ ਬਰਾਊਜ਼
 vendorShortName=ਟੋਰ ਪ੍ਰੋਜੈਕਟ
diff --git a/si_LK/brand.properties b/si_LK/brand.properties
index 298a84f..b8b9503 100644
--- a/si_LK/brand.properties
+++ b/si_LK/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor බ්‍රවුසරය
 brandShortName=Tor බ්‍රවුසරය
 brandFullName=Tor බ්‍රවුසරය
 vendorShortName=Tor ව්‍යාපෘතිය
diff --git a/sk_SK/brand.properties b/sk_SK/brand.properties
index 7bb505c..4c520c0 100644
--- a/sk_SK/brand.properties
+++ b/sk_SK/brand.properties
@@ -2,6 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+brandShorterName=Tor Browser
 brandShortName=Tor Browser
 brandFullName=Tor Browser
 vendorShortName=Tor Project
diff --git 

[tor-commits] [translation/torbutton-brandproperties] Update translations for torbutton-brandproperties

2016-03-21 Thread translation
commit 1af0d415b50ee9cc8db9ce40f0e7baeaa79b9a2a
Author: Translation commit bot 
Date:   Mon Mar 21 17:08:20 2016 +

Update translations for torbutton-brandproperties
---
 ast/brand.properties   |  2 +-
 az/brand.properties|  2 +-
 bn/brand.properties|  2 +-
 eo/brand.properties|  2 +-
 es_AR/brand.properties |  2 +-
 es_CL/brand.properties |  2 +-
 es_CO/brand.properties |  2 +-
 fy/brand.properties|  2 +-
 hr/brand.properties|  2 +-
 hr_HR/brand.properties | 18 +-
 kn/brand.properties|  2 +-
 ko_KR/brand.properties |  2 +-
 ms_MY/brand.properties |  2 +-
 pa/brand.properties|  2 +-
 si_LK/brand.properties |  2 +-
 sr/brand.properties|  2 +-
 ta/brand.properties|  2 +-
 vi/brand.properties|  2 +-
 zh_HK/brand.properties |  2 +-
 19 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/ast/brand.properties b/ast/brand.properties
index 9dd18b6..65cffb7 100644
--- a/ast/brand.properties
+++ b/ast/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Navegador Tor
 brandShortName=Navegador Tor
 brandFullName=Navegador Tor
 vendorShortName=Proyeutu Tor
diff --git a/az/brand.properties b/az/brand.properties
index b2d9dea..ecfa120 100644
--- a/az/brand.properties
+++ b/az/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Tor Brauzer
 brandShortName=Tor Brauzer
 brandFullName=Tor Brauzer
 vendorShortName=Tor Layihəsi
diff --git a/bn/brand.properties b/bn/brand.properties
index 9938958..9d8e178 100644
--- a/bn/brand.properties
+++ b/bn/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=টর ব্রাউজার
 brandShortName=টর ব্রাউজার
 brandFullName=টর ব্রাউজার
 vendorShortName=টর প্রকল্প
diff --git a/eo/brand.properties b/eo/brand.properties
index baaf076..db80593 100644
--- a/eo/brand.properties
+++ b/eo/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Tor krozilo
 brandShortName=Tor krozilo
 brandFullName=Tor krozilo
 vendorShortName=Tor Projektas
diff --git a/es_AR/brand.properties b/es_AR/brand.properties
index ada9b1c..500c9a1 100644
--- a/es_AR/brand.properties
+++ b/es_AR/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Buscador Tor
 brandShortName=Tor Browser
 brandFullName=Tor Browser
 vendorShortName=Proyecto Tor
diff --git a/es_CL/brand.properties b/es_CL/brand.properties
index 92a57b6..9b9365c 100644
--- a/es_CL/brand.properties
+++ b/es_CL/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Explorador Tor
 brandShortName=Explorador Tor
 brandFullName=Explorador Tor
 vendorShortName=Proyecto Tor
diff --git a/es_CO/brand.properties b/es_CO/brand.properties
index 34df9e0..b7ea5c6 100644
--- a/es_CO/brand.properties
+++ b/es_CO/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Navegador Tor
 brandShortName=Navegador Tor
 brandFullName=Navegador Tor
 vendorShortName=Proyecto Tor
diff --git a/fy/brand.properties b/fy/brand.properties
index b1ee96c..ae116f1 100644
--- a/fy/brand.properties
+++ b/fy/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Tor-browser
 brandShortName=Tor-blêder
 brandFullName=Tor-blêder
 vendorShortName=Tor-projekt
diff --git a/hr/brand.properties b/hr/brand.properties
index 73bcd53..4bbb455 100644
--- a/hr/brand.properties
+++ b/hr/brand.properties
@@ -2,7 +2,7 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-brandShorterName=Tor Browser
+brandShorterName=Tor Preglednik
 brandShortName=Tor Preglednik
 brandFullName=Tor Preglednik
 vendorShortName=Tor Projekt
diff --git a/hr_HR/brand.properties b/hr_HR/brand.properties
index 732c157..5c282b2 

[tor-commits] [translation/abouttor-homepage_completed] Update translations for abouttor-homepage_completed

2016-03-21 Thread translation
commit f8bb1cde48191c27efc4b567a24027fffda2bd6c
Author: Translation commit bot 
Date:   Mon Mar 21 17:07:41 2016 +

Update translations for abouttor-homepage_completed
---
 hr_HR/aboutTor.dtd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hr_HR/aboutTor.dtd b/hr_HR/aboutTor.dtd
index 671710a..e65df6c 100644
--- a/hr_HR/aboutTor.dtd
+++ b/hr_HR/aboutTor.dtd
@@ -21,7 +21,7 @@
 
 
 
-
+
 
 https://startpage.com/rth/search;>
 https://duckduckgo.com/html/;>
@@ -44,6 +44,6 @@
 
 https://www.torproject.org/donate/donate.html.en;>
 
-
+
 
 https://www.torproject.org/about/overview.html.en;>

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage

2016-03-21 Thread translation
commit e8efbe5c41b257dcb191a07a4a33b9e347f33947
Author: Translation commit bot 
Date:   Mon Mar 21 17:07:21 2016 +

Update translations for abouttor-homepage
---
 hr_HR/aboutTor.dtd | 52 ++--
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/hr_HR/aboutTor.dtd b/hr_HR/aboutTor.dtd
index d44f164..e65df6c 100644
--- a/hr_HR/aboutTor.dtd
+++ b/hr_HR/aboutTor.dtd
@@ -4,46 +4,46 @@
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
   -->
 
-
+
 
-
-
-
+
+
+
 
-
+
 
-
-
-
-
-
-
+
+
+
+
+
+
 
 
 
-
+
 
 https://startpage.com/rth/search;>
 https://duckduckgo.com/html/;>
 https://search.disconnect.me/searchTerms/search?ses=Googlelocation_option=USsource=tor;>
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
 https://www.torproject.org/download/download.html.en#warning;>
-
-
-
+
+
+
 https://www.torproject.org/docs/tor-doc-relay.html.en;>
-
+
 https://www.torproject.org/getinvolved/volunteer.html.en;>
-
+
 https://www.torproject.org/donate/donate.html.en;>
 
-
-
+
+
 https://www.torproject.org/about/overview.html.en;>

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-misc_completed] Update translations for tails-misc_completed

2016-03-21 Thread translation
commit f58133eb79f713190b2d97f9a1a240fcd1451b6c
Author: Translation commit bot 
Date:   Mon Mar 21 17:06:35 2016 +

Update translations for tails-misc_completed
---
 bg.po| 82 
 de.po|  4 ++--
 en_GB.po |  4 ++--
 es.po| 82 
 fr.po|  4 ++--
 fr_CA.po | 82 
 hu.po| 82 
 id.po|  6 ++---
 it.po|  4 ++--
 ko.po|  2 +-
 nb.po| 82 
 nl.po|  4 ++--
 pl.po|  4 ++--
 pt_BR.po |  2 +-
 ro.po|  4 ++--
 ru.po| 82 
 sv.po|  8 +++
 tr.po| 82 
 uk.po| 82 
 zh_CN.po | 82 
 zh_TW.po |  4 ++--
 21 files changed, 394 insertions(+), 394 deletions(-)

diff --git a/bg.po b/bg.po
index 2ee069d..d0b1c97 100644
--- a/bg.po
+++ b/bg.po
@@ -16,8 +16,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-11 21:00+0100\n"
-"PO-Revision-Date: 2016-01-12 15:37+\n"
+"POT-Creation-Date: 2016-03-17 15:03+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: Tsvetan Nikolov \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
@@ -51,30 +51,30 @@ msgid ""
 "\n"
 msgstr "Помогнете ни да поправиме вашия 
бъг!\nПрочетете нашите 
инструкции за докладване на 
бъгове.\nНе включвайте повече 
лична информация от колкото е 
нужно!\nОтносно, даването на нас на 
е-поща\n\nДавайки ни имейл адрес вие ни 
позволявате да се свържем с вас, за да се 
изясним проблема. Това е необходимо за 
по-голямата част от докладите, които 
получаваме, тъй като повечето доклади без 
никаква информация за контакт са 
безполезни. От друга страна също така 
предоставя\nвъзможност за подслушване, 
като електронната 
 си поща или интернет доставчик, , за 
дапотвърди, че използвате Tails.\n\n"
 
-#: config/chroot_local-includes/usr/local/bin/electrum:14
+#: config/chroot_local-includes/usr/local/bin/electrum:17
 msgid "Persistence is disabled for Electrum"
 msgstr "Устойчивостта е забранена за Electrum"
 
-#: config/chroot_local-includes/usr/local/bin/electrum:16
+#: config/chroot_local-includes/usr/local/bin/electrum:19
 msgid ""
 "When you reboot Tails, all of Electrum's data will be lost, including your "
 "Bitcoin wallet. It is strongly recommended to only run Electrum when its "
 "persistence feature is activated."
 msgstr "Когато рестартирате Tails, всички данни 
на Electrum ще бъдат загубени, включително Bitcoin 
портфейла ви.Силно се препоръчва 
единствено да стартирате Електрум само, 
когато активира своята функция за 
устойчивост."
 
-#: config/chroot_local-includes/usr/local/bin/electrum:18
+#: config/chroot_local-includes/usr/local/bin/electrum:21
 msgid "Do you want to start Electrum anyway?"
 msgstr "Искате ли да стартирате Electrum така или 
иначе?"
 
-#: config/chroot_local-includes/usr/local/bin/electrum:20
-#: config/chroot_local-includes/usr/local/bin/icedove:22
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:36
+#: config/chroot_local-includes/usr/local/bin/electrum:23
+#: config/chroot_local-includes/usr/local/bin/icedove:23
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:41
 msgid "_Launch"
 msgstr "_Стартиране"
 
-#: config/chroot_local-includes/usr/local/bin/electrum:21
-#: config/chroot_local-includes/usr/local/bin/icedove:23
-#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:37
+#: config/chroot_local-includes/usr/local/bin/electrum:24
+#: config/chroot_local-includes/usr/local/bin/icedove:24
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:42
 msgid "_Exit"
 msgstr "_Изход"
 
@@ -235,11 +235,11 @@ msgstr "Продукция на GnuPG:"
 msgid "Other messages provided by GnuPG:"
 

[tor-commits] [translation/mat-gui] Update translations for mat-gui

2016-03-21 Thread translation
commit 25c267ce576b6f6bf1d72749d91e83939b432484
Author: Translation commit bot 
Date:   Mon Mar 21 17:01:09 2016 +

Update translations for mat-gui
---
 af.po  |  2 +-
 ak.po  |  2 +-
 am.po  |  2 +-
 ar.po  |  2 +-
 arn.po |  2 +-
 ast.po |  2 +-
 az.po  |  2 +-
 be.po  |  2 +-
 bg.po  |  2 +-
 bn.po  |  2 +-
 bn_IN.po   |  2 +-
 bo.po  |  2 +-
 br.po  |  2 +-
 bs.po  |  2 +-
 ca.po  |  2 +-
 cs.po  |  2 +-
 csb.po |  2 +-
 cy.po  |  2 +-
 da.po  |  2 +-
 de.po  |  2 +-
 dz.po  |  2 +-
 el.po  |  2 +-
 en_GB.po   |  2 +-
 eo.po  |  2 +-
 es.po  |  2 +-
 es_AR.po   |  2 +-
 es_CL.po   |  2 +-
 es_CO.po   |  2 +-
 es_MX.po   |  2 +-
 et.po  |  2 +-
 eu.po  |  2 +-
 fa.po  |  2 +-
 fi.po  |  2 +-
 fil.po |  2 +-
 fo.po  |  2 +-
 fr.po  |  2 +-
 fr_CA.po   |  2 +-
 fur.po |  2 +-
 fy.po  |  2 +-
 ga.po  |  2 +-
 gl.po  |  2 +-
 gu.po  |  2 +-
 gun.po |  2 +-
 ha.po  |  2 +-
 he.po  |  2 +-
 hi.po  |  2 +-
 hr.po  |  2 +-
 hr_HR.po   | 84 +-
 ht.po  |  2 +-
 hu.po  |  2 +-
 hy.po  |  2 +-
 ia.po  |  2 +-
 id.po  |  4 +--
 is.po  |  2 +-
 it.po  |  2 +-
 ja.po  |  2 +-
 jv.po  |  2 +-
 ka.po  |  2 +-
 km.po  |  2 +-
 kn.po  |  2 +-
 ko.po  |  4 +--
 ko_KR.po   |  2 +-
 ku.po  |  2 +-
 ku_IQ.po   |  2 +-
 kw.po  |  2 +-
 ky.po  |  2 +-
 lb.po  |  2 +-
 lg.po  |  2 +-
 ln.po  |  2 +-
 lo.po  |  2 +-
 lt.po  |  2 +-
 lv.po  |  2 +-
 mg.po  |  2 +-
 mi.po  |  2 +-
 mk.po  |  2 +-
 ml.po  |  2 +-
 mn.po  |  2 +-
 mr.po  |  2 +-
 ms_MY.po   |  2 +-
 mt.po  |  2 +-
 my.po  |  2 +-
 nah.po |  2 +-
 nap.po |  2 +-
 nb.po  |  2 +-
 ne.po  |  2 +-
 nl.po  |  2 +-
 nl_BE.po   |  2 +-
 nn.po  |  2 +-
 nso.po |  2 +-
 oc.po  |  2 +-
 or.po  |  2 +-
 pa.po  |  2 +-
 pap.po |  2 +-
 pl.po  |  2 +-
 pms.po |  2 +-
 ps.po  |  2 +-
 pt.po  |  2 +-
 pt_BR.po   |  2 +-
 ro.po  |  2 +-
 ru.po  |  2 +-
 r...@petr1708.po |  2 +-
 sco.po |  2 +-
 si_LK.po   |  2 +-
 sk.po  |  2 +-
 sk_SK.po   |  2 +-
 sl.po  |  2 +-
 sl_SI.po   |  2 +-
 so.po  |  2 +-
 son.po |  2 +-
 sq.po  |  2 +-
 sr.po  |  2 +-
 st.po  |  2 +-
 su.po  |  2 +-
 sv.po  |  2 +-
 sw.po  |  2 +-
 ta.po  |  2 +-
 te.po  |  2 +-
 tg.po  |  2 +-
 th.po  |  2 +-
 ti.po  |  2 +-
 tk.po  |  2 +-
 tr.po  |  2 +-
 uk.po  |  2 +-
 ur.po  |  2 +-
 ur_PK.po   |  2 +-
 uz.po  |  2 +-
 ve.po  |  2 +-
 vi.po  |  2 +-
 wa.po  |  2 +-
 wo.po  |  2 +-
 zh_CN.po   |  2 +-
 zh_HK.po   |  2 +-
 zh_TW.po   |  2 +-
 zu.po  |  2 +-
 134 files changed, 177 insertions(+), 177 deletions(-)

diff --git a/af.po b/af.po
index 7e81227..fb55dbd 100644
--- a/af.po
+++ b/af.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: 2016-02-11 09:31+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Afrikaans 
(http://www.transifex.com/otf/torproject/language/af/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ak.po b/ak.po
index 7b5dd38..aeabe8e 100644
--- a/ak.po
+++ b/ak.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: 2016-02-11 09:31+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Akan (http://www.transifex.com/otf/torproject/language/ak/)\n"
 "MIME-Version: 1.0\n"
diff --git a/am.po b/am.po
index 72108c4..f90a2cb 100644
--- a/am.po
+++ b/am.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: 2016-02-11 09:31+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Amharic 
(http://www.transifex.com/otf/torproject/language/am/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ar.po b/ar.po
index 7d659db..a50f108 100644
--- a/ar.po

[tor-commits] [translation/tor-launcher-network-settings_completed] Update translations for tor-launcher-network-settings_completed

2016-03-21 Thread translation
commit ed23c449a817b172181a92993245e1c96c065500
Author: Translation commit bot 
Date:   Mon Mar 21 17:05:02 2016 +

Update translations for tor-launcher-network-settings_completed
---
 hr_HR/network-settings.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hr_HR/network-settings.dtd b/hr_HR/network-settings.dtd
index 038a4ac..fea9644 100644
--- a/hr_HR/network-settings.dtd
+++ b/hr_HR/network-settings.dtd
@@ -18,7 +18,7 @@ internetskoj vezi ovog računala.">
 
 
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-03-21 Thread translation
commit 181f4ef9b1cffce87a599c1ef7c1735bffd5f1f1
Author: Translation commit bot 
Date:   Mon Mar 21 17:04:47 2016 +

Update translations for tor-launcher-network-settings
---
 hr_HR/network-settings.dtd| 112 +-
 sr@latin/network-settings.dtd |   2 +-
 uz/network-settings.dtd   |   2 +-
 3 files changed, 59 insertions(+), 57 deletions(-)

diff --git a/hr_HR/network-settings.dtd b/hr_HR/network-settings.dtd
index 75ece3b..fea9644 100644
--- a/hr_HR/network-settings.dtd
+++ b/hr_HR/network-settings.dtd
@@ -1,75 +1,77 @@
-
+
 
 
-
-
+
+
 
 
 
-
+
 
-
-
+
+
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
 
-
-
+
+
 
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
 
 
 
-
-
-
+
+
+
 
-
-
+
+
 
-
+
 
-
-
-
-
+
+
+
+
 
-
-
+
+
 
 
 
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
 
-
-
-
-
-
-https://bridges.torproject.org;>
-
-
-https://www.riseup.net, 
https://mail.google.com, or https://mail.yahoo.com;>
-
-
+
+
+
+
+
+https://bridges.torproject.org;>
+
+
+https://www.riseup.net, 
https://mail.google.com, ili https://mail.yahoo.com;>
+
+
diff --git a/sr@latin/network-settings.dtd b/sr@latin/network-settings.dtd
index dcb6891..3256a58 100644
--- a/sr@latin/network-settings.dtd
+++ b/sr@latin/network-settings.dtd
@@ -60,7 +60,7 @@
 
 
 
-
+
 
 
 
diff --git a/uz/network-settings.dtd b/uz/network-settings.dtd
index f8795c1..b9a3947 100644
--- a/uz/network-settings.dtd
+++ b/uz/network-settings.dtd
@@ -17,7 +17,7 @@
 
 
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-progress] Update translations for tor-launcher-progress

2016-03-21 Thread translation
commit 4e1708d3f7350eca118c716cbecb554fd5be8479
Author: Translation commit bot 
Date:   Mon Mar 21 17:03:21 2016 +

Update translations for tor-launcher-progress
---
 hr_HR/progress.dtd | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hr_HR/progress.dtd b/hr_HR/progress.dtd
index 9ac9ad7..da9a846 100644
--- a/hr_HR/progress.dtd
+++ b/hr_HR/progress.dtd
@@ -1,4 +1,4 @@
 
-
-
-
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2016-03-21 Thread translation
commit e1495a886a3137ddcccd79f4f9a1d7ab6ffd1f72
Author: Translation commit bot 
Date:   Mon Mar 21 17:02:37 2016 +

Update translations for tor-launcher-properties
---
 et/torlauncher.properties   |   2 +-
 gu/torlauncher.properties   |   2 +-
 hr_HR/torlauncher.properties| 112 
 mk/torlauncher.properties   |   2 +-
 ms_MY/torlauncher.properties|   2 +-
 my/torlauncher.properties   |   2 +-
 sco/torlauncher.properties  |   2 +-
 si_LK/torlauncher.properties|   2 +-
 sl/torlauncher.properties   |   2 +-
 sr@latin/torlauncher.properties |   2 +-
 10 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/et/torlauncher.properties b/et/torlauncher.properties
index 6c7a4f9..6aeb338 100644
--- a/et/torlauncher.properties
+++ b/et/torlauncher.properties
@@ -27,7 +27,7 @@ torlauncher.error_bridges_missing=You must specify one or 
more bridges.
 torlauncher.error_default_bridges_type_missing=You must select a transport 
type for the provided bridges.
 torlauncher.error_bridge_bad_default_type=No provided bridges that have the 
transport type %S are available. Please adjust your settings.
 
-torlauncher.recommended_bridge=(recommended)
+torlauncher.recommended_bridge=(soovitatud)
 
 torlauncher.connect=Connect
 torlauncher.restart_tor=Restart Tor
diff --git a/gu/torlauncher.properties b/gu/torlauncher.properties
index 0ef4437..7501f9d 100644
--- a/gu/torlauncher.properties
+++ b/gu/torlauncher.properties
@@ -27,7 +27,7 @@ torlauncher.error_bridges_missing=You must specify one or 
more bridges.
 torlauncher.error_default_bridges_type_missing=You must select a transport 
type for the provided bridges.
 torlauncher.error_bridge_bad_default_type=No provided bridges that have the 
transport type %S are available. Please adjust your settings.
 
-torlauncher.recommended_bridge=(recommended)
+torlauncher.recommended_bridge=(સૂચવેલ)
 
 torlauncher.connect=Connect
 torlauncher.restart_tor=Restart Tor
diff --git a/hr_HR/torlauncher.properties b/hr_HR/torlauncher.properties
index 0ef4437..83e6914 100644
--- a/hr_HR/torlauncher.properties
+++ b/hr_HR/torlauncher.properties
@@ -1,61 +1,61 @@
 ### Copyright (c) 2016, The Tor Project, Inc.
 ### See LICENSE for licensing information.
 
-torlauncher.error_title=Tor Launcher
-
-torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in 
Tor itself, another program on your system, or faulty hardware. Until you 
restart Tor, the Tor Browser will not able to reach any websites. If the 
problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network 
connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
+torlauncher.error_title=Pokretač Tor-a
+
+torlauncher.tor_exited=Tor je neočekivano izašao. Ovo bi moglo biti zbog 
greške u samom Tor-u, drugog programa na Vašem sustavu ili neispravnog 
hardware-a. Dok ne pokrenete Tor ponovno, Tor Preglednik neće biti u 
mogućnosti pristupiti web stranicama. Ako problem ustraje, molimo Vas da 
pošaljete kopiju Vašeg Tor zapisa timu za podršku.
+torlauncher.tor_exited2=Ponovno pokretanje Tor-a neće zatvoriti Vaše kartice 
u pregledniku.
+torlauncher.tor_controlconn_failed=Nije se moguće spojiti na Tor-ov 
upravljački port.
+torlauncher.tor_failed_to_start=Tor se nije uspio pokrenuti.
+torlauncher.tor_control_failed=Preuzimanje kontrole nad Tor-om nije uspjelo.
+torlauncher.tor_bootstrap_failed=Tor nije uspio uspostaviti Tor mrežnu vezu.
+torlauncher.tor_bootstrap_failed_details=%1$S neuspjelo (%2$S).
+
+torlauncher.unable_to_start_tor=Nije moguće pokrenuti Tor.\n\n%S
+torlauncher.tor_missing=Nije moguće pronaći izvršni program za Tor.
 torlauncher.torrc_missing=The torrc file is missing and could not be created.
 torlauncher.datadir_missing=The Tor data directory does not exist and could 
not be created.
-torlauncher.password_hash_missing=Failed to get hashed password.
-
-torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
-torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
-
-torlauncher.error_proxy_addr_missing=You must specify both an IP address or 
hostname and a port number to configure Tor to use a proxy to access the 
Internet.
-torlauncher.error_proxy_type_missing=You must select the proxy type.
-torlauncher.error_bridges_missing=You must specify one or more bridges.

[tor-commits] [translation/mat-gui_completed] Update translations for mat-gui_completed

2016-03-21 Thread translation
commit 8862f12b41f9eefe814cce5dc2cd6f16a5bfc9b3
Author: Translation commit bot 
Date:   Mon Mar 21 17:01:26 2016 +

Update translations for mat-gui_completed
---
 de.po| 2 +-
 el.po| 2 +-
 en_GB.po | 2 +-
 es.po| 2 +-
 eu.po| 2 +-
 fr.po| 2 +-
 fr_CA.po | 2 +-
 hr_HR.po | 4 ++--
 hu.po| 2 +-
 id.po| 4 ++--
 it.po| 2 +-
 nb.po| 2 +-
 nl.po| 2 +-
 pl.po| 2 +-
 pt_BR.po | 2 +-
 ro.po| 2 +-
 ru.po| 2 +-
 sv.po| 2 +-
 tr.po| 2 +-
 zh_CN.po | 2 +-
 zh_TW.po | 2 +-
 21 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/de.po b/de.po
index b86989f..3754ca2 100644
--- a/de.po
+++ b/de.po
@@ -18,7 +18,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: 2016-02-13 14:38+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Thilo N\n"
 "Language-Team: German 
(http://www.transifex.com/otf/torproject/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/el.po b/el.po
index 58489ca..3cd4678 100644
--- a/el.po
+++ b/el.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: 2016-02-23 16:27+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: TitanJack \n"
 "Language-Team: Greek (http://www.transifex.com/otf/torproject/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/en_GB.po b/en_GB.po
index eeb591d..ae7bd4e 100644
--- a/en_GB.po
+++ b/en_GB.po
@@ -10,7 +10,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: 2016-02-11 10:21+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Andi Chandler \n"
 "Language-Team: English (United Kingdom) 
(http://www.transifex.com/otf/torproject/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/es.po b/es.po
index 8ab72ff..259cfd2 100644
--- a/es.po
+++ b/es.po
@@ -11,7 +11,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: 2016-02-11 10:18+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: strel\n"
 "Language-Team: Spanish 
(http://www.transifex.com/otf/torproject/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/eu.po b/eu.po
index 8e772bd..c284656 100644
--- a/eu.po
+++ b/eu.po
@@ -11,7 +11,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: 2016-02-27 06:41+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Antxon Baldarra \n"
 "Language-Team: Basque 
(http://www.transifex.com/otf/torproject/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fr.po b/fr.po
index 997f0d5..4ff4ffb 100644
--- a/fr.po
+++ b/fr.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: 2016-02-15 07:31+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Gwennole Hangard \n"
 "Language-Team: French 
(http://www.transifex.com/otf/torproject/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/fr_CA.po b/fr_CA.po
index d93f961..73a38fa 100644
--- a/fr_CA.po
+++ b/fr_CA.po
@@ -11,7 +11,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: 2016-02-11 12:02+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Trans-fr\n"
 "Language-Team: French (Canada) 
(http://www.transifex.com/otf/torproject/language/fr_CA/)\n"
 "MIME-Version: 1.0\n"
diff --git a/hr_HR.po b/hr_HR.po
index a3539c9..e23ec29 100644
--- a/hr_HR.po
+++ b/hr_HR.po
@@ -12,8 +12,8 @@ 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: 2016-03-14 06:44+\n"
-"Last-Translator: Igor \n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
+"Last-Translator: erinm\n"
 "Language-Team: Croatian (Croatia) 
(http://www.transifex.com/otf/torproject/language/hr_HR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff --git a/hu.po b/hu.po
index 547ef38..7cbd3e2 100644
--- a/hu.po
+++ b/hu.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: 2016-02-12 19:26+\n"
+"PO-Revision-Date: 2016-03-21 16:34+\n"
 "Last-Translator: Faludi Zoltán\n"
 "Language-Team: Hungarian 
(http://www.transifex.com/otf/torproject/language/hu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/id.po 

[tor-commits] [translation/https_everywhere] Update translations for https_everywhere

2016-03-21 Thread translation
commit 0291d8a408cf578ac7b7aa6a1b6f26007f6a824c
Author: Translation commit bot 
Date:   Mon Mar 21 16:52:46 2016 +

Update translations for https_everywhere
---
 af/https-everywhere.dtd   |  2 +-
 am/https-everywhere.dtd   |  2 +-
 ar/https-everywhere.dtd   |  2 +-
 az/https-everywhere.dtd   |  2 +-
 be/https-everywhere.dtd   |  2 +-
 bg/https-everywhere.dtd   |  2 +-
 br/https-everywhere.dtd   |  2 +-
 bs/https-everywhere.dtd   |  2 +-
 cy/https-everywhere.dtd   |  2 +-
 eo/https-everywhere.dtd   |  2 +-
 eo/https-everywhere.properties|  2 +-
 es/https-everywhere.dtd   |  2 +-
 es_AR/https-everywhere.dtd|  2 +-
 es_CL/https-everywhere.dtd|  2 +-
 es_CO/https-everywhere.dtd|  2 +-
 es_MX/https-everywhere.dtd|  2 +-
 et/https-everywhere.dtd   |  2 +-
 eu/https-everywhere.dtd   |  2 +-
 fil/https-everywhere.dtd  |  2 +-
 fo/https-everywhere.dtd   |  2 +-
 fy/https-everywhere.dtd   |  2 +-
 ga/https-everywhere.dtd   |  2 +-
 gl/https-everywhere.dtd   |  2 +-
 gu/https-everywhere.dtd   |  2 +-
 gu_IN/https-everywhere.dtd|  2 +-
 he/https-everywhere.dtd   |  2 +-
 hi/https-everywhere.dtd   |  2 +-
 hr/https-everywhere.dtd   |  2 +-
 hr_HR/https-everywhere.dtd| 98 +++
 hr_HR/https-everywhere.properties | 16 +++
 hr_HR/ssl-observatory.dtd | 89 +--
 ia/https-everywhere.dtd   |  2 +-
 is/https-everywhere.dtd   |  2 +-
 ka/https-everywhere.dtd   |  2 +-
 km/https-everywhere.dtd   |  2 +-
 ko/https-everywhere.dtd   |  6 +--
 ko_KR/https-everywhere.dtd|  2 +-
 ku_IQ/https-everywhere.dtd|  2 +-
 ky/https-everywhere.dtd   |  2 +-
 lb/https-everywhere.dtd   |  2 +-
 lb/ssl-observatory.dtd|  2 +-
 lo/https-everywhere.dtd   |  2 +-
 lt/https-everywhere.dtd   |  2 +-
 lv/https-everywhere.dtd   |  2 +-
 mk/https-everywhere.dtd   |  2 +-
 mr/https-everywhere.dtd   |  2 +-
 ms_MY/https-everywhere.dtd|  2 +-
 my/https-everywhere.dtd   |  2 +-
 nl_BE/https-everywhere.dtd|  2 +-
 nn/https-everywhere.dtd   |  2 +-
 pa/https-everywhere.dtd   |  2 +-
 pt/https-everywhere.dtd   |  2 +-
 si_LK/https-everywhere.dtd|  2 +-
 sk/https-everywhere.dtd   |  2 +-
 sk_SK/https-everywhere.dtd|  2 +-
 sl/https-everywhere.dtd   |  2 +-
 sl_SI/https-everywhere.dtd|  2 +-
 sl_SI/ssl-observatory.dtd |  2 +-
 sq/https-everywhere.dtd   |  2 +-
 sr/https-everywhere.dtd   |  2 +-
 sr@latin/https-everywhere.dtd |  2 +-
 ta/https-everywhere.dtd   |  2 +-
 th/https-everywhere.dtd   |  2 +-
 uk/https-everywhere.dtd   |  2 +-
 ur/https-everywhere.dtd   |  2 +-
 ur_PK/https-everywhere.dtd|  2 +-
 uz/https-everywhere.dtd   |  2 +-
 uz/ssl-observatory.dtd|  2 +-
 vi/https-everywhere.dtd   |  2 +-
 zh_HK/https-everywhere.dtd|  2 +-
 70 files changed, 171 insertions(+), 170 deletions(-)

diff --git a/af/https-everywhere.dtd b/af/https-everywhere.dtd
index 9dc7b6f..bb29be6 100644
--- a/af/https-everywhere.dtd
+++ b/af/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/am/https-everywhere.dtd b/am/https-everywhere.dtd
index c5bdeb1..0239f1b 100644
--- a/am/https-everywhere.dtd
+++ b/am/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/ar/https-everywhere.dtd b/ar/https-everywhere.dtd
index 3f414eb..117a727 100644
--- a/ar/https-everywhere.dtd
+++ b/ar/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/az/https-everywhere.dtd b/az/https-everywhere.dtd
index e6ed92f..5a3138e 100644
--- a/az/https-everywhere.dtd
+++ b/az/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/be/https-everywhere.dtd b/be/https-everywhere.dtd
index 660c1bb..11dfbbc 100644
--- a/be/https-everywhere.dtd
+++ b/be/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/bg/https-everywhere.dtd b/bg/https-everywhere.dtd
index f64b53d..a695ee4 100644
--- a/bg/https-everywhere.dtd
+++ b/bg/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/br/https-everywhere.dtd b/br/https-everywhere.dtd
index 2ac51cd..7eaae35 100644
--- a/br/https-everywhere.dtd
+++ b/br/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/bs/https-everywhere.dtd b/bs/https-everywhere.dtd
index 2ac51cd..8e8c5d4 100644
--- a/bs/https-everywhere.dtd
+++ b/bs/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-
+
 
 
diff --git a/cy/https-everywhere.dtd b/cy/https-everywhere.dtd
index f9f9b87..37b0bf1 100644
--- a/cy/https-everywhere.dtd
+++ b/cy/https-everywhere.dtd
@@ -51,6 +51,6 @@
 
 
 
-

[tor-commits] [translation/https_everywhere_completed] Update translations for https_everywhere_completed

2016-03-21 Thread translation
commit e861c4445c85c67063f29530fa8d00ba95d1d7e8
Author: Translation commit bot 
Date:   Mon Mar 21 16:53:53 2016 +

Update translations for https_everywhere_completed
---
 eo/https-everywhere.properties | 2 +-
 es/https-everywhere.dtd| 2 +-
 hr_HR/https-everywhere.dtd | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/eo/https-everywhere.properties b/eo/https-everywhere.properties
index c69a9b2..8eaf3f8 100644
--- a/eo/https-everywhere.properties
+++ b/eo/https-everywhere.properties
@@ -3,6 +3,6 @@ https-everywhere.menu.globalDisable = Malŝalti HTTPS-Ĉie
 https-everywhere.menu.enableDisable = Ŝalti/malŝalti regulojn
 https-everywhere.menu.noRules = (neniu regulo por ĉi tiu paĝo)
 https-everywhere.menu.unknownRules = (reguloj por ĉi tiu paĝo estas 
nekonataj)
-https-everywhere.toolbar.hint = HTTPS-Ĉie estas nun aktiva. Vi enŝaltas ĝin 
laÅ­ retejo alklakante la piktogramon en la adresbreto.
+https-everywhere.toolbar.hint = HTTPS-Ĉie estas nun aktiva. Vi povas 
baskuligi ĝin laŭ retejo alklakante la piktogramon en la adresbreto.
 https-everywhere.migration.notification0 = Por funkciigi gravan flikaĵon, ĉi 
tiu ĝisdatigo reŝargas la preferojn de viaj reguloj por HTTPS-Ĉie al la 
aprioraj valoroj.
 https-everywhere.menu.ruleset-tests = Faru la provojn de la HTTPS-Ĉie Regularo
diff --git a/es/https-everywhere.dtd b/es/https-everywhere.dtd
index 6c7527c..c2b20cd 100644
--- a/es/https-everywhere.dtd
+++ b/es/https-everywhere.dtd
@@ -49,7 +49,7 @@
 
 
 
-
+
 
 
 
diff --git a/hr_HR/https-everywhere.dtd b/hr_HR/https-everywhere.dtd
index 0ff43f1..eabd2ac 100644
--- a/hr_HR/https-everywhere.dtd
+++ b/hr_HR/https-everywhere.dtd
@@ -16,7 +16,7 @@
 
 
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy_completed] Update translations for torbirdy_completed

2016-03-21 Thread translation
commit 1d855b59007fda884f2b8d142018d5ee41b8e9ff
Author: Translation commit bot 
Date:   Mon Mar 21 16:59:55 2016 +

Update translations for torbirdy_completed
---
 hr_HR/torbirdy.dtd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hr_HR/torbirdy.dtd b/hr_HR/torbirdy.dtd
index 6c6a6be..9e583b2 100644
--- a/hr_HR/torbirdy.dtd
+++ b/hr_HR/torbirdy.dtd
@@ -11,8 +11,8 @@
 
 
 
-
-
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy] Update translations for torbirdy

2016-03-21 Thread translation
commit 4e32ab5389e2e98fa957861b22a8d5c30f0ab132
Author: Translation commit bot 
Date:   Mon Mar 21 16:59:02 2016 +

Update translations for torbirdy
---
 cy/torbirdy.dtd   |  2 +-
 eo/torbirdy.dtd   |  2 +-
 eo/torbirdy.properties| 18 ++--
 fil/torbirdy.properties   | 22 +++---
 gu/torbirdy.dtd   |  2 +-
 gu_IN/torbirdy.properties |  2 +-
 hr/torbirdy.dtd   |  2 +-
 hr_HR/torbirdy.dtd| 74 +++
 hr_HR/torbirdy.properties | 24 +++
 my/torbirdy.dtd   |  2 +-
 si_LK/torbirdy.properties |  2 +-
 sk_SK/torbirdy.dtd|  2 +-
 sl/torbirdy.dtd   |  2 +-
 th/torbirdy.dtd   |  2 +-
 uz/torbirdy.properties| 14 -
 vi/torbirdy.dtd   |  2 +-
 vi/torbirdy.properties| 16 +-
 17 files changed, 95 insertions(+), 95 deletions(-)

diff --git a/cy/torbirdy.dtd b/cy/torbirdy.dtd
index 23cf231..7ac23ac 100644
--- a/cy/torbirdy.dtd
+++ b/cy/torbirdy.dtd
@@ -42,7 +42,7 @@
 
 
 
-
+
 
 
 
diff --git a/eo/torbirdy.dtd b/eo/torbirdy.dtd
index 57ab7c2..b61ad4c 100644
--- a/eo/torbirdy.dtd
+++ b/eo/torbirdy.dtd
@@ -42,7 +42,7 @@
 
 
 
-
+
 
 
 
diff --git a/eo/torbirdy.properties b/eo/torbirdy.properties
index 47c84fd..e5b8c4e 100644
--- a/eo/torbirdy.properties
+++ b/eo/torbirdy.properties
@@ -3,17 +3,17 @@ torbirdy.name=TorBirdy
 torbirdy.enabled.tor=TorBirdy enŝaltita:Tor
 torbirdy.enabled.jondo=TorBirdy enŝaltita:JonDo
 torbirdy.enabled.custom=TorBirdy enŝaltita:propra prokurilo
-# torbirdy.enabled.torification=TorBirdy Enabled:Transparent Torification
-# torbirdy.enabled.whonix=TorBirdy Enabled:Whonix
+torbirdy.enabled.torification=TorBirdy Enabled:Transparent Torification
+torbirdy.enabled.whonix=TorBirdy Enabled:Whonix
 torbirdy.disabled=TorBirdy:malŝaltita!
 
-# torbirdy.email.prompt=TorBirdy has disabled Thunderbird's auto-configuration 
wizard to protect your anonymity.\n\nThe recommended security settings for %S 
have been set.\n\nYou can now configure the other account settings manually.
+torbirdy.email.prompt=TorBirdy has disabled Thunderbird's auto-configuration 
wizard to protect your anonymity.\n\nThe recommended security settings for %S 
have been set.\n\nYou can now configure the other account settings manually.
 
-# torbirdy.email.advanced=Please note that changing the advanced settings of 
TorBirdy is NOT recommended.\n\nYou should only continue if you are sure of 
what you are doing.
-# torbirdy.email.advanced.nextwarning=Show this warning next time
-# torbirdy.email.advanced.title=TorBirdy Advanced Settings
+torbirdy.email.advanced=Please note that changing the advanced settings of 
TorBirdy is NOT recommended.\n\nYou should only continue if you are sure of 
what you are doing.
+torbirdy.email.advanced.nextwarning=Show this warning next time
+torbirdy.email.advanced.title=TorBirdy Advanced Settings
 
-# torbirdy.restart=You must restart Thunderbird for the time zone preference 
to take effect.
+torbirdy.restart=You must restart Thunderbird for the time zone preference to 
take effect.
 
-# torbirdy.firstrun=You are now running TorBirdy.\n\nTo help protect your 
anonymity, TorBirdy will enforce the Thunderbird settings it has set, 
preventing them from being changed by you or by any add-on. There are some 
settings that can be changed and those are accessed through TorBirdy's 
preferences dialog. When TorBirdy is uninstalled or disabled, all settings that 
it changes are reset to their default values (the values prior to TorBirdy's 
install).\n\nIf you are a new user, it is recommended that you read through the 
TorBirdy website to understand what we are trying to accomplish with TorBirdy 
for our users.
-# torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy
+torbirdy.firstrun=You are now running TorBirdy.\n\nTo help protect your 
anonymity, TorBirdy will enforce the Thunderbird settings it has set, 
preventing them from being changed by you or by any add-on. There are some 
settings that can be changed and those are accessed through TorBirdy's 
preferences dialog. When TorBirdy is uninstalled or disabled, all settings that 
it changes are reset to their default values (the values prior to TorBirdy's 
install).\n\nIf you are a new user, it is recommended that you read through the 
TorBirdy website to understand what we are trying to accomplish with TorBirdy 
for our users.
+torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy
diff --git a/fil/torbirdy.properties b/fil/torbirdy.properties
index 238be3e..e7d0af6 100644
--- a/fil/torbirdy.properties
+++ b/fil/torbirdy.properties
@@ -1,19 +1,19 @@
-# torbirdy.name=TorBirdy
+torbirdy.name=TorBirdy
 
 torbirdy.enabled.tor=TorBirdy Pinaganang: Tor
 torbirdy.enabled.jondo=TorBirdy Pinaganang: JonDo
 torbirdy.enabled.custom=TorBirdy Pinaganang: Pasadyang Proxy
-# 

[tor-commits] [translation/tails-greeter_completed] Update translations for tails-greeter_completed

2016-03-21 Thread translation
commit 533e11417e690f84b8941b72f9166a475f244e9b
Author: Translation commit bot 
Date:   Mon Mar 21 16:57:21 2016 +

Update translations for tails-greeter_completed
---
 ar/ar.po   | 4 ++--
 bg/bg.po   | 4 ++--
 ca/ca.po   | 4 ++--
 cs/cs.po   | 4 ++--
 da/da.po   | 4 ++--
 de/de.po   | 6 +++---
 el/el.po   | 4 ++--
 en_GB/en_GB.po | 4 ++--
 es/es.po   | 2 +-
 es_AR/es_AR.po | 4 ++--
 es_MX/es_MX.po | 4 ++--
 fa/fa.po   | 4 ++--
 fi/fi.po   | 4 ++--
 fr/fr.po   | 4 ++--
 fr_CA/fr_CA.po | 4 ++--
 gl/gl.po   | 4 ++--
 he/he.po   | 8 
 hr_HR/hr_HR.po | 8 
 hu/hu.po   | 4 ++--
 id/id.po   | 6 +++---
 it/it.po   | 4 ++--
 ja/ja.po   | 2 +-
 ko/ko.po   | 4 ++--
 lb/lb.po   | 4 ++--
 lt/lt.po   | 4 ++--
 lv/lv.po   | 4 ++--
 nb/nb.po   | 4 ++--
 nl/nl.po   | 4 ++--
 pl/pl.po   | 4 ++--
 pt/pt.po   | 4 ++--
 pt_BR/pt_BR.po | 4 ++--
 ro/ro.po   | 4 ++--
 ru/ru.po   | 4 ++--
 sv/sv.po   | 4 ++--
 ta/ta.po   | 4 ++--
 tr/tr.po   | 4 ++--
 uk/uk.po   | 4 ++--
 zh_CN/zh_CN.po | 6 +++---
 zh_HK/zh_HK.po | 4 ++--
 zh_TW/zh_TW.po | 4 ++--
 40 files changed, 85 insertions(+), 85 deletions(-)

diff --git a/ar/ar.po b/ar/ar.po
index a14bc83..a7f613e 100644
--- a/ar/ar.po
+++ b/ar/ar.po
@@ -18,8 +18,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-25 15:44+0100\n"
-"PO-Revision-Date: 2016-02-05 06:04+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/bg/bg.po b/bg/bg.po
index 9532c17..9920f14 100644
--- a/bg/bg.po
+++ b/bg/bg.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 18:12+0100\n"
-"PO-Revision-Date: 2015-12-21 09:22+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Bulgarian 
(http://www.transifex.com/otf/torproject/language/bg/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ca/ca.po b/ca/ca.po
index e4c9dae..10584f4 100644
--- a/ca/ca.po
+++ b/ca/ca.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-25 15:44+0100\n"
-"PO-Revision-Date: 2016-01-27 19:57+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: laia_\n"
 "Language-Team: Catalan 
(http://www.transifex.com/otf/torproject/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/cs/cs.po b/cs/cs.po
index 16cefaa..3aefab1 100644
--- a/cs/cs.po
+++ b/cs/cs.po
@@ -13,8 +13,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 18:12+0100\n"
-"PO-Revision-Date: 2015-12-21 09:22+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Czech (http://www.transifex.com/otf/torproject/language/cs/)\n"
 "MIME-Version: 1.0\n"
diff --git a/da/da.po b/da/da.po
index 92162f9..98fbf88 100644
--- a/da/da.po
+++ b/da/da.po
@@ -13,8 +13,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 18:12+0100\n"
-"PO-Revision-Date: 2015-12-21 09:22+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Danish 
(http://www.transifex.com/otf/torproject/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/de/de.po b/de/de.po
index 2fd100e..a81781f 100644
--- a/de/de.po
+++ b/de/de.po
@@ -11,7 +11,7 @@
 # Oliver Baumann , 2013
 # Chris , 2012
 # Sacro , 2012
-# spriver , 2015
+# spriver , 2015
 # sycamoreone , 2014
 # Tobias Bannert , 2013
 # Tobias Bannert , 2014
@@ -24,8 +24,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 18:12+0100\n"
-"PO-Revision-Date: 2015-12-21 09:22+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: German 
(http://www.transifex.com/otf/torproject/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/el/el.po b/el/el.po
index 14c24da..4d46808 100644
--- a/el/el.po
+++ b/el/el.po
@@ -14,8 +14,8 @@ msgid ""
 msgstr ""
 

[tor-commits] [translation/tails-greeter] Update translations for tails-greeter

2016-03-21 Thread translation
commit 42ba2abbfb932b2bd3210ffce916c62c29d74acb
Author: Translation commit bot 
Date:   Mon Mar 21 16:56:56 2016 +

Update translations for tails-greeter
---
 af/af.po   |  4 +--
 ar/ar.po   |  4 +--
 ast/ast.po |  4 +--
 az/az.po   |  4 +--
 be/be.po   |  4 +--
 bg/bg.po   |  4 +--
 bn/bn.po   |  4 +--
 bs/bs.po   |  4 +--
 ca/ca.po   |  4 +--
 cs/cs.po   |  4 +--
 cv/cv.po   |  4 +--
 cy/cy.po   |  4 +--
 da/da.po   |  4 +--
 de/de.po   |  6 ++--
 el/el.po   |  4 +--
 en_GB/en_GB.po |  4 +--
 eo/eo.po   |  4 +--
 es/es.po   |  2 +-
 es_AR/es_AR.po |  4 +--
 es_CL/es_CL.po |  4 +--
 es_CO/es_CO.po |  4 +--
 es_MX/es_MX.po |  4 +--
 et/et.po   |  4 +--
 eu/eu.po   |  4 +--
 fa/fa.po   |  4 +--
 fi/fi.po   |  4 +--
 fil/fil.po |  4 +--
 fo/fo.po   |  4 +--
 fr/fr.po   |  4 +--
 fr_CA/fr_CA.po |  4 +--
 fy/fy.po   |  4 +--
 gl/gl.po   |  4 +--
 gu/gu.po   |  4 +--
 he/he.po   |  8 +++---
 hi/hi.po   |  4 +--
 hr/hr.po   |  4 +--
 hr_HR/hr_HR.po | 72 +++---
 hu/hu.po   |  4 +--
 ia/ia.po   |  4 +--
 id/id.po   |  6 ++--
 is/is.po   |  4 +--
 it/it.po   |  4 +--
 ja/ja.po   |  2 +-
 ka/ka.po   |  4 +--
 kk/kk.po   |  4 +--
 km/km.po   |  4 +--
 kn/kn.po   |  4 +--
 ko/ko.po   |  4 +--
 ko_KR/ko_KR.po |  4 +--
 ku_IQ/ku_IQ.po |  4 +--
 ky/ky.po   |  4 +--
 la/la.po   |  4 +--
 lb/lb.po   |  4 +--
 lo/lo.po   |  4 +--
 lt/lt.po   |  4 +--
 lv/lv.po   |  4 +--
 mr/mr.po   |  4 +--
 ms_MY/ms_MY.po |  4 +--
 my/my.po   |  4 +--
 nb/nb.po   |  4 +--
 nl/nl.po   |  4 +--
 nl_BE/nl_BE.po |  4 +--
 nn/nn.po   |  4 +--
 pa/pa.po   |  4 +--
 pl/pl.po   |  4 +--
 pt/pt.po   |  4 +--
 pt_BR/pt_BR.po |  4 +--
 ro/ro.po   |  4 +--
 ru/ru.po   |  4 +--
 ru@petr1708/r...@petr1708.po |  4 +--
 si_LK/si_LK.po |  4 +--
 sk/sk.po   |  4 +--
 sk_SK/sk_SK.po |  6 ++--
 sl/sl.po   |  4 +--
 sl_SI/sl_SI.po |  4 +--
 sq/sq.po   |  4 +--
 sr/sr.po   |  4 +--
 sr@latin/s...@latin.po   |  4 +--
 sv/sv.po   |  4 +--
 ta/ta.po   |  4 +--
 te_IN/te_IN.po |  4 +--
 th/th.po   |  4 +--
 tr/tr.po   |  4 +--
 uk/uk.po   |  4 +--
 ur/ur.po   |  4 +--
 ur_PK/ur_PK.po |  4 +--
 uz/uz.po   |  4 +--
 vi/vi.po   |  4 +--
 zh_CN/zh_CN.po |  6 ++--
 zh_HK/zh_HK.po |  4 +--
 zh_TW/zh_TW.po |  4 +--
 91 files changed, 220 insertions(+), 220 deletions(-)

diff --git a/af/af.po b/af/af.po
index 64cb6b3..f3e19d6 100644
--- a/af/af.po
+++ b/af/af.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 18:12+0100\n"
-"PO-Revision-Date: 2015-12-21 09:22+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Afrikaans 
(http://www.transifex.com/otf/torproject/language/af/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ar/ar.po b/ar/ar.po
index a14bc83..a7f613e 100644
--- a/ar/ar.po
+++ b/ar/ar.po
@@ -18,8 +18,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-25 15:44+0100\n"
-"PO-Revision-Date: 2016-02-05 06:04+\n"
+"POT-Creation-Date: 2016-02-29 14:32+0100\n"
+"PO-Revision-Date: 2016-03-21 16:27+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Arabic 
(http://www.transifex.com/otf/torproject/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/ast/ast.po b/ast/ast.po
index a740c24..6564df9 100644
--- a/ast/ast.po
+++ b/ast/ast.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 

  1   2   >