[tor-commits] [metrics-web/master] Don't attempt to read non-existant csv.R.

2014-05-09 Thread karsten
commit d0fdf5a2e0271850e9b909c066c6591ee94c92e6
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Fri May 9 08:31:01 2014 +0200

Don't attempt to read non-existant csv.R.

This silently broke table generation on users.html.

Bug introduced in 9b0f692823ea9851c0b184cb6408882fb0cb5e9a.

Fixes #11847.
---
 website/rserve/rserve-init.R |1 -
 1 file changed, 1 deletion(-)

diff --git a/website/rserve/rserve-init.R b/website/rserve/rserve-init.R
index 7a87b16..4c6fa10 100644
--- a/website/rserve/rserve-init.R
+++ b/website/rserve/rserve-init.R
@@ -9,6 +9,5 @@ library(digest)
 library(RColorBrewer)
 
 source('graphs.R')
-source('csv.R')
 source('tables.R')
 

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


[tor-commits] [onionoo/master] Use Gson to format JSON details status files.

2014-05-09 Thread karsten
commit 677c5a3af88f8b7862c47d2148df6f0f9523062e
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 19:02:24 2014 +0200

Use Gson to format JSON details status files.
---
 src/org/torproject/onionoo/DetailsStatus.java  |  130 +-
 src/org/torproject/onionoo/DocumentStore.java  |   29 +++-
 .../onionoo/NodeDetailsStatusUpdater.java  |  179 +---
 3 files changed, 201 insertions(+), 137 deletions(-)

diff --git a/src/org/torproject/onionoo/DetailsStatus.java 
b/src/org/torproject/onionoo/DetailsStatus.java
index 1ebb100..1a497e4 100644
--- a/src/org/torproject/onionoo/DetailsStatus.java
+++ b/src/org/torproject/onionoo/DetailsStatus.java
@@ -1,7 +1,133 @@
-/* Copyright 2013 The Tor Project
+/* Copyright 2013--2014 The Tor Project
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
 class DetailsStatus extends Document {
-}
 
+  /* We must ensure that details files only contain ASCII characters
+   * and no UTF-8 characters.  While UTF-8 characters are perfectly
+   * valid in JSON, this would break compatibility with existing files
+   * pretty badly.  We do this by escaping non-ASCII characters, e.g.,
+   * \u00F2.  Gson won't treat this as UTF-8, but will think that we want
+   * to write six characters '\', 'u', '0', '0', 'F', '2'.  The only thing
+   * we'll have to do is to change back the '\\' that Gson writes for the
+   * '\'. */
+  private static String escapeJSON(String s) {
+return s == null ? null :
+StringEscapeUtils.escapeJavaScript(s).replaceAll(', ');
+  }
+  private static String unescapeJSON(String s) {
+return s == null ? null :
+StringEscapeUtils.unescapeJavaScript(s.replaceAll(', \\'));
+  }
+
+  private String desc_published;
+  public void setDescPublished(String descPublished) {
+this.desc_published = descPublished;
+  }
+  public String getDescPublished() {
+return this.desc_published;
+  }
+
+  private String last_restarted;
+  public void setLastRestarted(String lastRestarted) {
+this.last_restarted = lastRestarted;
+  }
+  public String getLastRestarted() {
+return this.last_restarted;
+  }
+
+  private Integer bandwidth_rate;
+  public void setBandwidthRate(Integer bandwidthRate) {
+this.bandwidth_rate = bandwidthRate;
+  }
+  public Integer getBandwidthRate() {
+return this.bandwidth_rate;
+  }
+
+  private Integer bandwidth_burst;
+  public void setBandwidthBurst(Integer bandwidthBurst) {
+this.bandwidth_burst = bandwidthBurst;
+  }
+  public Integer getBandwidthBurst() {
+return this.bandwidth_burst;
+  }
+
+  private Integer observed_bandwidth;
+  public void setObservedBandwidth(Integer observedBandwidth) {
+this.observed_bandwidth = observedBandwidth;
+  }
+  public Integer getObservedBandwidth() {
+return this.observed_bandwidth;
+  }
+
+  private Integer advertised_bandwidth;
+  public void setAdvertisedBandwidth(Integer advertisedBandwidth) {
+this.advertised_bandwidth = advertisedBandwidth;
+  }
+  public Integer getAdvertisedBandwidth() {
+return this.advertised_bandwidth;
+  }
+
+  private ListString exit_policy;
+  public void setExitPolicy(ListString exitPolicy) {
+this.exit_policy = exitPolicy;
+  }
+  public ListString getExitPolicy() {
+return this.exit_policy;
+  }
+
+  private String contact;
+  public void setContact(String contact) {
+this.contact = escapeJSON(contact);
+  }
+  public String getContact() {
+return unescapeJSON(this.contact);
+  }
+
+  private String platform;
+  public void setPlatform(String platform) {
+this.platform = escapeJSON(platform);
+  }
+  public String getPlatform() {
+return unescapeJSON(this.platform);
+  }
+
+  private ListString family;
+  public void setFamily(ListString family) {
+this.family = family;
+  }
+  public ListString getFamily() {
+return this.family;
+  }
+
+  private MapString, ListString exit_policy_v6_summary;
+  public void setExitPolicyV6Summary(
+  MapString, ListString exitPolicyV6Summary) {
+this.exit_policy_v6_summary = exitPolicyV6Summary;
+  }
+  public MapString, ListString getExitPolicyV6Summary() {
+return this.exit_policy_v6_summary;
+  }
+
+  private Boolean hibernating;
+  public void setHibernating(Boolean hibernating) {
+this.hibernating = hibernating;
+  }
+  public Boolean getHibernating() {
+return this.hibernating;
+  }
+
+  private String pool_assignment;
+  public void setPoolAssignment(String poolAssignment) {
+this.pool_assignment = poolAssignment;
+  }
+  public String getPoolAssignment() {
+return this.pool_assignment;
+  }
+}
diff --git a/src/org/torproject/onionoo/DocumentStore.java 
b/src/org/torproject/onionoo/DocumentStore.java
index e98fb4e..d80999e 100644
--- a/src/org/torproject/onionoo/DocumentStore.java
+++ 

[tor-commits] [onionoo/master] Use Gson to format JSON uptime documents.

2014-05-09 Thread karsten
commit 7b05cc2bc7e94424ffdbccceaa6d2102c0e2aeae
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 14:51:44 2014 +0200

Use Gson to format JSON uptime documents.
---
 src/org/torproject/onionoo/GraphHistory.java   |   56 +
 src/org/torproject/onionoo/ResponseBuilder.java|4 +-
 src/org/torproject/onionoo/UptimeDocument.java |   14 ++
 .../torproject/onionoo/UptimeDocumentWriter.java   |   67 +++---
 .../onionoo/UptimeDocumentWriterTest.java  |  253 
 5 files changed, 355 insertions(+), 39 deletions(-)

diff --git a/src/org/torproject/onionoo/GraphHistory.java 
b/src/org/torproject/onionoo/GraphHistory.java
new file mode 100644
index 000..f03be58
--- /dev/null
+++ b/src/org/torproject/onionoo/GraphHistory.java
@@ -0,0 +1,56 @@
+/* Copyright 2014 The Tor Project
+ * See LICENSE for licensing information */
+package org.torproject.onionoo;
+
+import java.util.List;
+
+public class GraphHistory {
+
+  private String first;
+  public void setFirst(String first) {
+this.first = first;
+  }
+  public String getFirst() {
+return this.first;
+  }
+
+  private String last;
+  public void setLast(String last) {
+this.last = last;
+  }
+  public String getLast() {
+return this.last;
+  }
+
+  private Integer interval;
+  public void setInterval(Integer interval) {
+this.interval = interval;
+  }
+  public Integer getInterval() {
+return this.interval;
+  }
+
+  private Double factor;
+  public void setFactor(Double factor) {
+this.factor = factor;
+  }
+  public Double getFactor() {
+return this.factor;
+  }
+
+  private Integer count;
+  public void setCount(Integer count) {
+this.count = count;
+  }
+  public Integer getCount() {
+return this.count;
+  }
+
+  private ListInteger values;
+  public void setValues(ListInteger values) {
+this.values = values;
+  }
+  public ListInteger getValues() {
+return this.values;
+  }
+}
diff --git a/src/org/torproject/onionoo/ResponseBuilder.java 
b/src/org/torproject/onionoo/ResponseBuilder.java
index c4f3f07..dbd8cc7 100644
--- a/src/org/torproject/onionoo/ResponseBuilder.java
+++ b/src/org/torproject/onionoo/ResponseBuilder.java
@@ -236,9 +236,7 @@ public class ResponseBuilder {
 UptimeDocument.class, false, fingerprint);
 if (uptimeDocument != null 
 uptimeDocument.getDocumentString() != null) {
-  String uptimeLines = uptimeDocument.getDocumentString();
-  uptimeLines = uptimeLines.substring(0, uptimeLines.length() - 1);
-  return uptimeLines;
+  return uptimeDocument.getDocumentString();
 } else {
   return {\fingerprint\:\ + fingerprint.toUpperCase() + \};
 }
diff --git a/src/org/torproject/onionoo/UptimeDocument.java 
b/src/org/torproject/onionoo/UptimeDocument.java
index f71cb87..b2df03b 100644
--- a/src/org/torproject/onionoo/UptimeDocument.java
+++ b/src/org/torproject/onionoo/UptimeDocument.java
@@ -2,7 +2,21 @@
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.Map;
+
 class UptimeDocument extends Document {
 
+  private String fingerprint;
+  public void setFingerprint(String fingerprint) {
+this.fingerprint = fingerprint;
+  }
+
+  private MapString, GraphHistory uptime;
+  public void setUptime(MapString, GraphHistory uptime) {
+this.uptime = uptime;
+  }
+  public MapString, GraphHistory getUptime() {
+return this.uptime;
+  }
 }
 
diff --git a/src/org/torproject/onionoo/UptimeDocumentWriter.java 
b/src/org/torproject/onionoo/UptimeDocumentWriter.java
index 14c800d..8293f77 100644
--- a/src/org/torproject/onionoo/UptimeDocumentWriter.java
+++ b/src/org/torproject/onionoo/UptimeDocumentWriter.java
@@ -3,8 +3,9 @@
 package org.torproject.onionoo;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Locale;
+import java.util.Map;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -70,9 +71,8 @@ public class UptimeDocumentWriter implements 
FingerprintListener,
   SortedSetUptimeHistory history = relay
   ? uptimeStatus.getRelayHistory()
   : uptimeStatus.getBridgeHistory();
-  UptimeDocument uptimeDocument = new UptimeDocument();
-  uptimeDocument.setDocumentString(this.formatHistoryString(relay,
-  fingerprint, history, knownStatuses));
+  UptimeDocument uptimeDocument = this.compileUptimeDocument(relay,
+  fingerprint, history, knownStatuses);
   this.documentStore.store(uptimeDocument, fingerprint);
   this.writtenDocuments++;
 }
@@ -99,31 +99,29 @@ public class UptimeDocumentWriter implements 
FingerprintListener,
   DateTimeHelper.TWO_DAYS,
   DateTimeHelper.TEN_DAYS };
 
-  private String formatHistoryString(boolean relay, String fingerprint,
-  SortedSetUptimeHistory history,
+  private UptimeDocument compileUptimeDocument(boolean relay,
+  String fingerprint, SortedSetUptimeHistory history,
   

[tor-commits] [onionoo/master] Use Gson to format JSON bandwidth documents.

2014-05-09 Thread karsten
commit f148e0178c73a51df9f25fa339647e2ced083b57
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 15:28:50 2014 +0200

Use Gson to format JSON bandwidth documents.
---
 src/org/torproject/onionoo/BandwidthDocument.java  |   16 +
 .../onionoo/BandwidthDocumentWriter.java   |   69 +---
 src/org/torproject/onionoo/ResponseBuilder.java|5 +-
 3 files changed, 49 insertions(+), 41 deletions(-)

diff --git a/src/org/torproject/onionoo/BandwidthDocument.java 
b/src/org/torproject/onionoo/BandwidthDocument.java
index 3f1a07f..e39befb 100644
--- a/src/org/torproject/onionoo/BandwidthDocument.java
+++ b/src/org/torproject/onionoo/BandwidthDocument.java
@@ -2,7 +2,23 @@
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.Map;
+
 class BandwidthDocument extends Document {
 
+  private String fingerprint;
+  public void setFingerprint(String fingerprint) {
+this.fingerprint = fingerprint;
+  }
+
+  private MapString, GraphHistory write_history;
+  public void setWriteHistory(MapString, GraphHistory writeHistory) {
+this.write_history = writeHistory;
+  }
+
+  private MapString, GraphHistory read_history;
+  public void setReadHistory(MapString, GraphHistory readHistory) {
+this.read_history = readHistory;
+  }
 }
 
diff --git a/src/org/torproject/onionoo/BandwidthDocumentWriter.java 
b/src/org/torproject/onionoo/BandwidthDocumentWriter.java
index 0bc8387..164ab30 100644
--- a/src/org/torproject/onionoo/BandwidthDocumentWriter.java
+++ b/src/org/torproject/onionoo/BandwidthDocumentWriter.java
@@ -4,8 +4,9 @@ package org.torproject.onionoo;
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Locale;
+import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.SortedSet;
@@ -47,25 +48,23 @@ public class BandwidthDocumentWriter implements 
FingerprintListener,
   if (bandwidthStatus == null) {
 continue;
   }
-  this.writeBandwidthDataFileToDisk(fingerprint,
-  bandwidthStatus.getWriteHistory(),
-  bandwidthStatus.getReadHistory());
+  BandwidthDocument bandwidthDocument = this.compileBandwidthDocument(
+  fingerprint, bandwidthStatus);
+  this.documentStore.store(bandwidthDocument, fingerprint);
 }
 Logger.printStatusTime(Wrote bandwidth document files);
   }
 
-  private void writeBandwidthDataFileToDisk(String fingerprint,
-  SortedMapLong, long[] writeHistory,
-  SortedMapLong, long[] readHistory) {
-String writeHistoryString = formatHistoryString(writeHistory);
-String readHistoryString = formatHistoryString(readHistory);
-StringBuilder sb = new StringBuilder();
-sb.append({\fingerprint\:\ + fingerprint + \,\n
-+ \write_history\:{\n + writeHistoryString + },\n
-+ \read_history\:{\n + readHistoryString + }}\n);
+
+  private BandwidthDocument compileBandwidthDocument(String fingerprint,
+  BandwidthStatus bandwidthStatus) {
 BandwidthDocument bandwidthDocument = new BandwidthDocument();
-bandwidthDocument.setDocumentString(sb.toString());
-this.documentStore.store(bandwidthDocument, fingerprint);
+bandwidthDocument.setFingerprint(fingerprint);
+bandwidthDocument.setWriteHistory(this.compileGraphType(
+bandwidthStatus.getWriteHistory()));
+bandwidthDocument.setReadHistory(this.compileGraphType(
+bandwidthStatus.getReadHistory()));
+return bandwidthDocument;
   }
 
   private String[] graphNames = new String[] {
@@ -92,8 +91,10 @@ public class BandwidthDocumentWriter implements 
FingerprintListener,
   DateTimeHelper.TWO_DAYS,
   DateTimeHelper.TEN_DAYS };
 
-  private String formatHistoryString(SortedMapLong, long[] history) {
-StringBuilder sb = new StringBuilder();
+  private MapString, GraphHistory compileGraphType(
+  SortedMapLong, long[] history) {
+MapString, GraphHistory graphs =
+new LinkedHashMapString, GraphHistory();
 for (int i = 0; i  this.graphIntervals.length; i++) {
   String graphName = this.graphNames[i];
   long graphInterval = this.graphIntervals[i];
@@ -153,18 +154,16 @@ public class BandwidthDocumentWriter implements 
FingerprintListener,
   + (lastNonNullIndex - firstNonNullIndex) * dataPointInterval;
   double factor = ((double) maxValue) / 999.0;
   int count = lastNonNullIndex - firstNonNullIndex + 1;
-  StringBuilder sb2 = new StringBuilder();
-  sb2.append(\ + graphName + \:{
-  + \first\:\
-  + DateTimeHelper.format(firstDataPointMillis) + \,
-  + \last\:\
-  + DateTimeHelper.format(lastDataPointMillis) + \,
-  + \interval\: + String.valueOf(dataPointInterval
-  / DateTimeHelper.ONE_SECOND)
-  + ,\factor\: + String.format(Locale.US, %.3f, factor)
-  + ,\count\: + String.valueOf(count) + 

[tor-commits] [onionoo/master] Use Gson to format JSON weights documents.

2014-05-09 Thread karsten
commit 2d4d342a755cb8085edd81e9d68d92f5110389f9
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 15:20:36 2014 +0200

Use Gson to format JSON weights documents.
---
 src/org/torproject/onionoo/ResponseBuilder.java|4 +-
 src/org/torproject/onionoo/WeightsDocument.java|   38 
 .../torproject/onionoo/WeightsDocumentWriter.java  |   93 ++--
 3 files changed, 85 insertions(+), 50 deletions(-)

diff --git a/src/org/torproject/onionoo/ResponseBuilder.java 
b/src/org/torproject/onionoo/ResponseBuilder.java
index f59a81c..4e0054e 100644
--- a/src/org/torproject/onionoo/ResponseBuilder.java
+++ b/src/org/torproject/onionoo/ResponseBuilder.java
@@ -208,9 +208,7 @@ public class ResponseBuilder {
 WeightsDocument.class, false, fingerprint);
 if (weightsDocument != null 
 weightsDocument.getDocumentString() != null) {
-  String weightsLines = weightsDocument.getDocumentString();
-  weightsLines = weightsLines.substring(0, weightsLines.length() - 1);
-  return weightsLines;
+  return weightsDocument.getDocumentString();
 } else {
   return {\fingerprint\:\ + fingerprint.toUpperCase() + \};
 }
diff --git a/src/org/torproject/onionoo/WeightsDocument.java 
b/src/org/torproject/onionoo/WeightsDocument.java
index af920f0..ff1d5f4 100644
--- a/src/org/torproject/onionoo/WeightsDocument.java
+++ b/src/org/torproject/onionoo/WeightsDocument.java
@@ -1,6 +1,44 @@
+/* Copyright 2014 The Tor Project
+ * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.Map;
+
 class WeightsDocument extends Document {
 
+  private String fingerprint;
+  public void setFingerprint(String fingerprint) {
+this.fingerprint = fingerprint;
+  }
+
+  private MapString, GraphHistory advertised_bandwidth_fraction;
+  public void setAdvertisedBandwidthFraction(
+  MapString, GraphHistory advertisedBandwidthFraction) {
+this.advertised_bandwidth_fraction = advertisedBandwidthFraction;
+  }
+
+  private MapString, GraphHistory consensus_weight_fraction;
+  public void setConsensusWeightFraction(
+  MapString, GraphHistory consensusWeightFraction) {
+this.consensus_weight_fraction = consensusWeightFraction;
+  }
+
+  private MapString, GraphHistory guard_probability;
+  public void setGuardProbability(
+  MapString, GraphHistory guardProbability) {
+this.guard_probability = guardProbability;
+  }
+
+  private MapString, GraphHistory middle_probability;
+  public void setMiddleProbability(
+  MapString, GraphHistory middleProbability) {
+this.middle_probability = middleProbability;
+  }
+
+  private MapString, GraphHistory exit_probability;
+  public void setExitProbability(
+  MapString, GraphHistory exitProbability) {
+this.exit_probability = exitProbability;
+  }
 }
 
diff --git a/src/org/torproject/onionoo/WeightsDocumentWriter.java 
b/src/org/torproject/onionoo/WeightsDocumentWriter.java
index d2f2a67..74108c9 100644
--- a/src/org/torproject/onionoo/WeightsDocumentWriter.java
+++ b/src/org/torproject/onionoo/WeightsDocumentWriter.java
@@ -4,8 +4,8 @@ package org.torproject.onionoo;
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
@@ -56,21 +56,13 @@ public class WeightsDocumentWriter implements 
FingerprintListener,
 continue;
   }
   SortedMaplong[], double[] history = weightsStatus.getHistory();
-  WeightsDocument weightsDocument = new WeightsDocument();
-  weightsDocument.setDocumentString(this.formatHistoryString(
-  fingerprint, history));
+  WeightsDocument weightsDocument = this.compileWeightsDocument(
+  fingerprint, history);
   this.documentStore.store(weightsDocument, fingerprint);
 }
+Logger.printStatusTime(Wrote weights document files);
   }
 
-  private String[] graphTypes = new String[] {
-  advertised_bandwidth_fraction,
-  consensus_weight_fraction,
-  guard_probability,
-  middle_probability,
-  exit_probability
-  };
-
   private String[] graphNames = new String[] {
   1_week,
   1_month,
@@ -92,33 +84,41 @@ public class WeightsDocumentWriter implements 
FingerprintListener,
   DateTimeHelper.TWO_DAYS,
   DateTimeHelper.TEN_DAYS };
 
-  private String formatHistoryString(String fingerprint,
+  private WeightsDocument compileWeightsDocument(String fingerprint,
   SortedMaplong[], double[] history) {
-StringBuilder sb = new StringBuilder();
-sb.append({\fingerprint\:\ + fingerprint + \);
-for (int graphTypeIndex = 0; graphTypeIndex  this.graphTypes.length;
-graphTypeIndex++) {
-  String graphType = this.graphTypes[graphTypeIndex];
-  sb.append(,\n\ + graphType + \:{);
-  int graphIntervalsWritten = 0;
-  for (int graphIntervalIndex = 0; graphIntervalIndex 

[tor-commits] [onionoo/master] Use Gson to format JSON clients documents.

2014-05-09 Thread karsten
commit 54ce50aebec208eae02688e7690ab0aa996a6210
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 15:20:21 2014 +0200

Use Gson to format JSON clients documents.
---
 src/org/torproject/onionoo/ClientsDocument.java|   12 +++
 .../torproject/onionoo/ClientsDocumentWriter.java  |   94 +---
 .../torproject/onionoo/ClientsGraphHistory.java|   83 +
 src/org/torproject/onionoo/ResponseBuilder.java|4 +-
 4 files changed, 138 insertions(+), 55 deletions(-)

diff --git a/src/org/torproject/onionoo/ClientsDocument.java 
b/src/org/torproject/onionoo/ClientsDocument.java
index c8679fc..300541d 100644
--- a/src/org/torproject/onionoo/ClientsDocument.java
+++ b/src/org/torproject/onionoo/ClientsDocument.java
@@ -2,7 +2,19 @@
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.Map;
+
 class ClientsDocument extends Document {
 
+  private String fingerprint;
+  public void setFingerprint(String fingerprint) {
+this.fingerprint = fingerprint;
+  }
+
+  private MapString, ClientsGraphHistory average_clients;
+  public void setAverageClients(
+  MapString, ClientsGraphHistory averageClients) {
+this.average_clients = averageClients;
+  }
 }
 
diff --git a/src/org/torproject/onionoo/ClientsDocumentWriter.java 
b/src/org/torproject/onionoo/ClientsDocumentWriter.java
index bab78e9..1fced6d 100644
--- a/src/org/torproject/onionoo/ClientsDocumentWriter.java
+++ b/src/org/torproject/onionoo/ClientsDocumentWriter.java
@@ -3,8 +3,8 @@
 package org.torproject.onionoo;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.SortedSet;
@@ -74,9 +74,8 @@ public class ClientsDocumentWriter implements 
FingerprintListener,
 continue;
   }
   SortedSetClientsHistory history = clientsStatus.getHistory();
-  ClientsDocument clientsDocument = new ClientsDocument();
-  clientsDocument.setDocumentString(this.formatHistoryString(
-  hashedFingerprint, history));
+  ClientsDocument clientsDocument = this.compileClientsDocument(
+  hashedFingerprint, history);
   this.documentStore.store(clientsDocument, hashedFingerprint);
   this.writtenDocuments++;
 }
@@ -104,28 +103,27 @@ public class ClientsDocumentWriter implements 
FingerprintListener,
   DateTimeHelper.TWO_DAYS,
   DateTimeHelper.TEN_DAYS };
 
-  private String formatHistoryString(String hashedFingerprint,
+  private ClientsDocument compileClientsDocument(String hashedFingerprint,
   SortedSetClientsHistory history) {
-StringBuilder sb = new StringBuilder();
-sb.append({\fingerprint\:\ + hashedFingerprint + \);
-sb.append(,\n\average_clients\:{);
-int graphIntervalsWritten = 0;
+ClientsDocument clientsDocument = new ClientsDocument();
+clientsDocument.setFingerprint(hashedFingerprint);
+MapString, ClientsGraphHistory averageClients =
+new LinkedHashMapString, ClientsGraphHistory();
 for (int graphIntervalIndex = 0; graphIntervalIndex 
 this.graphIntervals.length; graphIntervalIndex++) {
-  String timeline = this.formatTimeline(graphIntervalIndex, history);
-  if (timeline != null) {
-sb.append((graphIntervalsWritten++  0 ? , : ) + \n
-+ timeline);
+  String graphName = this.graphNames[graphIntervalIndex];
+  ClientsGraphHistory graphHistory = this.compileClientsHistory(
+  graphIntervalIndex, history);
+  if (graphHistory != null) {
+averageClients.put(graphName, graphHistory);
   }
 }
-sb.append(});
-sb.append(\n}\n);
-return sb.toString();
+clientsDocument.setAverageClients(averageClients);
+return clientsDocument;
   }
 
-  private String formatTimeline(int graphIntervalIndex,
-  SortedSetClientsHistory history) {
-String graphName = this.graphNames[graphIntervalIndex];
+  private ClientsGraphHistory compileClientsHistory(
+  int graphIntervalIndex, SortedSetClientsHistory history) {
 long graphInterval = this.graphIntervals[graphIntervalIndex];
 long dataPointInterval =
 this.dataPointIntervals[graphIntervalIndex];
@@ -214,16 +212,16 @@ public class ClientsDocumentWriter implements 
FingerprintListener,
 + (lastNonNullIndex - firstNonNullIndex) * dataPointInterval;
 double factor = ((double) maxValue) / 999.0;
 int count = lastNonNullIndex - firstNonNullIndex + 1;
-StringBuilder sb = new StringBuilder();
-sb.append(\ + graphName + \:{
-+ \first\:\ + DateTimeHelper.format(firstDataPointMillis)
-+ \,\last\:\ + DateTimeHelper.format(lastDataPointMillis)
-+ \,\interval\: + String.valueOf(dataPointInterval
-/ DateTimeHelper.ONE_SECOND)
-+ ,\factor\: + String.format(Locale.US, %.9f, factor)
-+ ,\count\: + String.valueOf(count) + ,\values\:[);
-   

[tor-commits] [onionoo/master] Use Gson to format JSON details documents.

2014-05-09 Thread karsten
commit 368e81088f736598337a5c4c19ebaac3f925023d
Author: Karsten Loesing karsten.loes...@gmx.net
Date:   Sun Apr 20 20:23:40 2014 +0200

Use Gson to format JSON details documents.
---
 src/org/torproject/onionoo/DetailsDocument.java|  347 +++-
 .../torproject/onionoo/DetailsDocumentWriter.java  |  293 ++---
 src/org/torproject/onionoo/ResponseBuilder.java|  162 ++---
 3 files changed, 562 insertions(+), 240 deletions(-)

diff --git a/src/org/torproject/onionoo/DetailsDocument.java 
b/src/org/torproject/onionoo/DetailsDocument.java
index b51b6cd..6c7e0ae 100644
--- a/src/org/torproject/onionoo/DetailsDocument.java
+++ b/src/org/torproject/onionoo/DetailsDocument.java
@@ -1,8 +1,353 @@
-/* Copyright 2013 The Tor Project
+/* Copyright 2013--2014 The Tor Project
  * See LICENSE for licensing information */
 package org.torproject.onionoo;
 
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
 class DetailsDocument extends Document {
 
+  /* We must ensure that details files only contain ASCII characters
+   * and no UTF-8 characters.  While UTF-8 characters are perfectly
+   * valid in JSON, this would break compatibility with existing files
+   * pretty badly.  We do this by escaping non-ASCII characters, e.g.,
+   * \u00F2.  Gson won't treat this as UTF-8, but will think that we want
+   * to write six characters '\', 'u', '0', '0', 'F', '2'.  The only thing
+   * we'll have to do is to change back the '\\' that Gson writes for the
+   * '\'. */
+  private static String escapeJSON(String s) {
+return s == null ? null :
+StringEscapeUtils.escapeJavaScript(s).replaceAll(', ');
+  }
+  private static String unescapeJSON(String s) {
+return s == null ? null :
+StringEscapeUtils.unescapeJavaScript(s.replaceAll(', \\'));
+  }
+
+  private String nickname;
+  public void setNickname(String nickname) {
+this.nickname = nickname;
+  }
+  public String getNickname() {
+return this.nickname;
+  }
+
+  private String fingerprint;
+  public void setFingerprint(String fingerprint) {
+this.fingerprint = fingerprint;
+  }
+  public String getFingerprint() {
+return this.fingerprint;
+  }
+
+  private String hashed_fingerprint;
+  public void setHashedFingerprint(String hashedFingerprint) {
+this.hashed_fingerprint = hashedFingerprint;
+  }
+  public String getHashedFingerprint() {
+return this.hashed_fingerprint;
+  }
+
+  private ListString or_addresses;
+  public void setOrAddresses(ListString orAddresses) {
+this.or_addresses = orAddresses;
+  }
+  public ListString getOrAddresses() {
+return this.or_addresses;
+  }
+
+  private ListString exit_addresses;
+  public void setExitAddresses(ListString exitAddresses) {
+this.exit_addresses = exitAddresses;
+  }
+  public ListString getExitAddresses() {
+return this.exit_addresses;
+  }
+
+  private String dir_address;
+  public void setDirAddress(String dirAddress) {
+this.dir_address = dirAddress;
+  }
+  public String getDirAddress() {
+return this.dir_address;
+  }
+
+  private String last_seen;
+  public void setLastSeen(String lastSeen) {
+this.last_seen = lastSeen;
+  }
+  public String getLastSeen() {
+return this.last_seen;
+  }
+
+  private String last_changed_address_or_port;
+  public void setLastChangedAddressOrPort(
+  String lastChangedAddressOrPort) {
+this.last_changed_address_or_port = lastChangedAddressOrPort;
+  }
+  public String getLastChangedAddressOrPort() {
+return this.last_changed_address_or_port;
+  }
+
+  private String first_seen;
+  public void setFirstSeen(String firstSeen) {
+this.first_seen = firstSeen;
+  }
+  public String getFirstSeen() {
+return this.first_seen;
+  }
+
+  private Boolean running;
+  public void setRunning(Boolean running) {
+this.running = running;
+  }
+  public Boolean getRunning() {
+return this.running;
+  }
+
+  private ListString flags;
+  public void setFlags(ListString flags) {
+this.flags = flags;
+  }
+  public ListString getFlags() {
+return this.flags;
+  }
+
+  private String country;
+  public void setCountry(String country) {
+this.country = country;
+  }
+  public String getCountry() {
+return this.country;
+  }
+
+  private String country_name;
+  public void setCountryName(String countryName) {
+this.country_name = escapeJSON(countryName);
+  }
+  public String getCountryName() {
+return unescapeJSON(this.country_name);
+  }
+
+  private String region_name;
+  public void setRegionName(String regionName) {
+this.region_name = escapeJSON(regionName);
+  }
+  public String getRegionName() {
+return unescapeJSON(this.region_name);
+  }
+
+  private String city_name;
+  public void setCityName(String cityName) {
+this.city_name = escapeJSON(cityName);
+  }
+  public String getCityName() {
+return unescapeJSON(this.city_name);
+  }
+
+  private Float latitude;
+  

[tor-commits] [tor-browser-bundle/master] Install fteproxy docs to the right place in the mac descriptor.

2014-05-09 Thread gk
commit f7e0b712fcd54503a8a421eaa1b363183b67482d
Author: David Fifield da...@bamsoftware.com
Date:   Thu May 8 11:54:54 2014 -0700

Install fteproxy docs to the right place in the mac descriptor.
---
 gitian/descriptors/mac/gitian-pluggable-transports.yml |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml 
b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index df73197..6895c87 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -194,8 +194,8 @@ script: |
   CFLAGS=-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS 
CXXFLAGS=-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS make
   cp -a bin/fteproxy $PTDIR/
   cp -ra fte $PTDIR/
-  mkdir -p $INSTDIR/Docs/fteproxy
-  cp -a {COPYING,README.md} $INSTDIR/Docs/fteproxy
+  mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
+  cp -a {COPYING,README.md} $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
   cd ..
   #
   cd $INSTDIR

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


[tor-commits] [tor-browser-bundle/master] Include Docs/ pluggable-transports-win32-gbuilt.zip.

2014-05-09 Thread gk
commit dc9fb94873d8e0b7eff7a99ff177c666d91ab1cd
Author: David Fifield da...@bamsoftware.com
Date:   Thu May 8 11:45:00 2014 -0700

Include Docs/ pluggable-transports-win32-gbuilt.zip.

Pluggable transport docs were missing on windows.
---
 gitian/descriptors/windows/gitian-pluggable-transports.yml |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml 
b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index cf7595e..3fdaf85 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -274,5 +274,5 @@ script: |
   cp -a $INSTDIR/python/python27.dll $PTDIR/
   #
   cd $INSTDIR
-  ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/
+  ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/ Docs/
   cp pluggable-transports-win32-gbuilt.zip $OUTDIR/



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


[tor-commits] [tor-browser-bundle/master] No need for a Data/ directory here.

2014-05-09 Thread gk
commit 43a8ecaf1ca987cd02bf2c46f8886749d4986773
Author: Georg Koppen g...@torproject.org
Date:   Fri May 9 09:39:08 2014 +

No need for a Data/ directory here.
---
 gitian/descriptors/windows/gitian-pluggable-transports.yml |7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml 
b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index 3fdaf85..f1505bb 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -4,7 +4,7 @@ suites:
 - precise
 architectures:
 - i386
-packages: 
+packages:
 - git-core
 - unzip
 - zip
@@ -73,10 +73,9 @@ script: |
   #export CFLAGS=-mwindows -fstack-protector-all -fPIE -Wstack-protector 
--param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers 
-Wformat-security
   #export LDFLAGS=-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lssp 
-L/usr/lib/gcc/i686-w64-mingw32/4.6/
   umask 0022
-  # 
+  #
   mkdir -p $INSTDIR/bin/
   mkdir -p $PTDIR/
-  mkdir -p $INSTDIR/Data/Tor/
   mkdir -p $OUTDIR/
   #
   # Set the timestamp on every .pyc file in a zip file, and re-dzip the zip 
file.
@@ -274,5 +273,5 @@ script: |
   cp -a $INSTDIR/python/python27.dll $PTDIR/
   #
   cd $INSTDIR
-  ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/ Docs/
+  ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Docs/
   cp pluggable-transports-win32-gbuilt.zip $OUTDIR/

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


[tor-commits] r26773: {website} Link to some obfsproxy coding tasks from the volunteers page (website/trunk/getinvolved/en)

2014-05-09 Thread George Kadianakis
Author: asn
Date: 2014-05-09 14:13:40 + (Fri, 09 May 2014)
New Revision: 26773

Modified:
   website/trunk/getinvolved/en/volunteer.wml
Log:
Link to some obfsproxy coding tasks from the volunteers page.

Modified: website/trunk/getinvolved/en/volunteer.wml
===
--- website/trunk/getinvolved/en/volunteer.wml  2014-05-08 20:46:04 UTC (rev 
26772)
+++ website/trunk/getinvolved/en/volunteer.wml  2014-05-09 14:13:40 UTC (rev 
26773)
@@ -618,6 +618,7 @@
 
 p
 bProject Ideas:/bbr /
+ia 
href=https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports#Helpneeded;Various
 coding tasks/a/i br/
 ia href=#betterPluggableTransportsBuild Better Pluggable 
Transports/a/i
 /p
 

___
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

2014-05-09 Thread translation
commit 34071f72b59576d85f13b8a87594a4bcb41866f5
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 15:15:37 2014 +

Update translations for tails-misc_completed
---
 pt.po |   56 
 1 file changed, 36 insertions(+), 20 deletions(-)

diff --git a/pt.po b/pt.po
index db1fd85..70499da 100644
--- a/pt.po
+++ b/pt.po
@@ -6,14 +6,15 @@
 # André Monteiro andre.mont...@gmail.com, 2014
 # sierleunam cfb53...@opayq.com, 2014
 # kohpyreit kohpyr...@gmail.com, 2013
+# Drew Melim nokostya.translat...@gmail.com, 2014
 # TiagoJMMC tiagoj...@gmail.com, 2014
 msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
-POT-Creation-Date: 2014-03-06 14:52+0100\n
-PO-Revision-Date: 2014-03-14 11:50+\n
-Last-Translator: André Monteiro andre.mont...@gmail.com\n
+POT-Creation-Date: 2014-04-27 19:29+0200\n
+PO-Revision-Date: 2014-05-09 15:10+\n
+Last-Translator: Drew Melim nokostya.translat...@gmail.com\n
 Language-Team: Portuguese 
(http://www.transifex.com/projects/p/torproject/language/pt/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -21,11 +22,11 @@ msgstr 
 Language: pt\n
 Plural-Forms: nplurals=2; plural=(n != 1);\n
 
-#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:31
+#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:43
 msgid Tor is ready
 msgstr O Tor está pronto
 
-#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:32
+#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready-notification.sh:44
 msgid You can now access the Internet.
 msgstr Poderá agora aceder à Internet.
 
@@ -216,11 +217,11 @@ msgstr Iniciar o Navegador Tor
 msgid Cancel
 msgstr Cancelar
 
-#: config/chroot_local-includes/usr/local/bin/shutdown_helper_applet:34
+#: config/chroot_local-includes/usr/local/lib/shutdown-helper-applet:39
 msgid Shutdown Immediately
 msgstr Encerrar imediatamente
 
-#: config/chroot_local-includes/usr/local/bin/shutdown_helper_applet:35
+#: config/chroot_local-includes/usr/local/lib/shutdown-helper-applet:40
 msgid Reboot Immediately
 msgstr Reiniciar imediatamente
 
@@ -228,27 +229,27 @@ msgstr Reiniciar imediatamente
 msgid Shutdown Helper
 msgstr Programa auxiliar para Encerrar
 
-#: config/chroot_local-includes/usr/local/bin/tails-about:13
+#: config/chroot_local-includes/usr/local/bin/tails-about:16
 msgid not available
 msgstr não disponível
 
-#: config/chroot_local-includes/usr/local/bin/tails-about:16
+#: config/chroot_local-includes/usr/local/bin/tails-about:19
 #: 
../config/chroot_local-includes/usr/share/desktop-directories/Tails.directory.in.h:1
 msgid Tails
 msgstr Tails
 
-#: config/chroot_local-includes/usr/local/bin/tails-about:17
+#: config/chroot_local-includes/usr/local/bin/tails-about:24
 msgid The Amnesic Incognito Live System
 msgstr O sistema Amnesic Incognito Live
 
-#: config/chroot_local-includes/usr/local/bin/tails-about:18
+#: config/chroot_local-includes/usr/local/bin/tails-about:25
 #, python-format
 msgid 
 Build information:\n
 %s
 msgstr Informações da compilação:\n%s
 
-#: config/chroot_local-includes/usr/local/bin/tails-about:20
+#: config/chroot_local-includes/usr/local/bin/tails-about:27
 msgid About Tails
 msgstr Acerca de Tails
 
@@ -348,6 +349,29 @@ msgid 
 following directory for more information:
 msgstr Algo correu mal quando o I2P estava a iniciar. Procure nos logs no 
seguinte diretório para mais informação:
 
+#: config/chroot_local-includes/usr/local/bin/tails-upgrade-frontend-wrapper:19
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:57
+msgid error:
+msgstr erro:
+
+#: config/chroot_local-includes/usr/local/bin/tails-upgrade-frontend-wrapper:20
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:58
+msgid Error
+msgstr Erro
+
+#: config/chroot_local-includes/usr/local/bin/tails-upgrade-frontend-wrapper:40
+msgid 
+bNot enough memory available to check for upgrades./b\n
+\n
+Make sure this system satisfies the requirements for running Tails.\n
+See file:///usr/share/doc/tails/website/doc/about/requirements.en.html\n
+\n
+Try to restart Tails to check for upgrades again.\n
+\n
+Or do a manual upgrade.\n
+See https://tails.boum.org/doc/first_steps/upgrade#manual;
+msgstr bNão existe memoria suficiente para verificar 
actualizações./b\n\nMake sure this system satisfies the requirements for 
running Tails.\nSee 
file:///usr/share/doc/tails/website/doc/about/requirements.en.html\n\nTry to 
restart Tails to check for upgrades again.\n\nOr do a manual upgrade.\nSee 
https://tails.boum.org/doc/first_steps/upgrade#manual;
+
 #: config/chroot_local-includes/usr/local/bin/tails-virt-notify-user:53
 msgid Warning: virtual machine detected!
 msgstr Atenção: máquina virtual detectada!
@@ -365,14 +389,6 @@ msgid 
  more.../a
 msgstr a 

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

2014-05-09 Thread translation
commit a69648ecd9d25036e4701b4a610573d0175e448e
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 15:15:34 2014 +

Update translations for tails-misc
---
 pt.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pt.po b/pt.po
index 6271149..70499da 100644
--- a/pt.po
+++ b/pt.po
@@ -6,14 +6,15 @@
 # André Monteiro andre.mont...@gmail.com, 2014
 # sierleunam cfb53...@opayq.com, 2014
 # kohpyreit kohpyr...@gmail.com, 2013
+# Drew Melim nokostya.translat...@gmail.com, 2014
 # TiagoJMMC tiagoj...@gmail.com, 2014
 msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2014-04-27 19:29+0200\n
-PO-Revision-Date: 2014-04-30 09:10+\n
-Last-Translator: runasand runa.sand...@gmail.com\n
+PO-Revision-Date: 2014-05-09 15:10+\n
+Last-Translator: Drew Melim nokostya.translat...@gmail.com\n
 Language-Team: Portuguese 
(http://www.transifex.com/projects/p/torproject/language/pt/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -369,7 +370,7 @@ msgid 
 \n
 Or do a manual upgrade.\n
 See https://tails.boum.org/doc/first_steps/upgrade#manual;
-msgstr 
+msgstr bNão existe memoria suficiente para verificar 
actualizações./b\n\nMake sure this system satisfies the requirements for 
running Tails.\nSee 
file:///usr/share/doc/tails/website/doc/about/requirements.en.html\n\nTry to 
restart Tails to check for upgrades again.\n\nOr do a manual upgrade.\nSee 
https://tails.boum.org/doc/first_steps/upgrade#manual;
 
 #: config/chroot_local-includes/usr/local/bin/tails-virt-notify-user:53
 msgid Warning: virtual machine detected!

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


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

2014-05-09 Thread translation
commit e0bc213dad0aff8ef50412c9ecff18e3915d5ac8
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 16:45:23 2014 +

Update translations for https_everywhere_completed
---
 bg/https-everywhere.dtd |   14 --
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/bg/https-everywhere.dtd b/bg/https-everywhere.dtd
index a8ea0a1..e6182e8 100644
--- a/bg/https-everywhere.dtd
+++ b/bg/https-everywhere.dtd
@@ -12,8 +12,9 @@
 
 !ENTITY https-everywhere.menu.about За HTTPS Everywhere
 !ENTITY https-everywhere.menu.observatory Настройки на SSL 
Observatory
-!ENTITY https-everywhere.menu.globalEnable Включване на HTTPS 
Everywhere
-!ENTITY https-everywhere.menu.globalDisable Изключване на HTTPS 
Everywhere
+!ENTITY https-everywhere.menu.globalEnable Включи HTTPS Everywhere
+!ENTITY https-everywhere.menu.globalDisable Изключи HTTPS Everywhere
+!ENTITY https-everywhere.menu.showCounter Показване на 
брояч
 
 !ENTITY https-everywhere.prefs.title Настройки на HTTPS 
Everywhere
 !ENTITY https-everywhere.prefs.enable_all Включване на 
всички
@@ -34,4 +35,13 @@
 !ENTITY https-everywhere.source.filename Име на файл
 !ENTITY https-everywhere.source.unable_to_download Не може да 
свали кода.
 
+!ENTITY https-everywhere.popup.title HTTPS Everywhere 4.0development.11 
известие
+!ENTITY https-everywhere.popup.paragraph1 Опс. Използвали 
сте стабилната версия на HTTPS Everywhere, но е 
възможно случайно да сме Ви надградили с 
разработваща се версия.
+!ENTITY https-everywhere.popup.paragraph2 Искате ли да се 
върнете към стабилната версия?
+!ENTITY https-everywhere.popup.paragraph3 Ще се радваме, ако 
продължите да използвате нашата 
разработваща се версия и ни помогнете да 
направим HTTPS Everywhere по-добра! Може да 
откриете няколко грешки тук-там, които да 
докладвате на https-everywh...@eff.org. Извинете за 
неудобството и Ви благодарим, че 
използвате HTTPS Everywhere.
+!ENTITY https-everywhere.popup.keep Задържане на 
разработващата версия
+!ENTITY https-everywhere.popup.revert Изтегли 
най-актуалната стабилна версия
 
+!ENTITY https-everywhere.ruleset-tests.status_title Тестване 
правилата на HTTPS Everywhere
+!ENTITY https-everywhere.ruleset-tests.status_cancel_button Отказ
+!ENTITY https-everywhere.ruleset-tests.status_start_button Старт

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


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

2014-05-09 Thread translation
commit bcf64aa9e3f97544f2e8a3e6a9d8385dc157d80f
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 16:45:18 2014 +

Update translations for https_everywhere
---
 bg/https-everywhere.dtd |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/bg/https-everywhere.dtd b/bg/https-everywhere.dtd
index 5c4383c..e6182e8 100644
--- a/bg/https-everywhere.dtd
+++ b/bg/https-everywhere.dtd
@@ -14,7 +14,7 @@
 !ENTITY https-everywhere.menu.observatory Настройки на SSL 
Observatory
 !ENTITY https-everywhere.menu.globalEnable Включи HTTPS Everywhere
 !ENTITY https-everywhere.menu.globalDisable Изключи HTTPS Everywhere
-!ENTITY https-everywhere.menu.showCounter Show Counter
+!ENTITY https-everywhere.menu.showCounter Показване на 
брояч
 
 !ENTITY https-everywhere.prefs.title Настройки на HTTPS 
Everywhere
 !ENTITY https-everywhere.prefs.enable_all Включване на 
всички
@@ -35,13 +35,13 @@
 !ENTITY https-everywhere.source.filename Име на файл
 !ENTITY https-everywhere.source.unable_to_download Не може да 
свали кода.
 
-!ENTITY https-everywhere.popup.title HTTPS Everywhere 4.0development.11 
notification
-!ENTITY https-everywhere.popup.paragraph1 Oops. You were using the stable 
version of HTTPS Everywhere, but we might have accidentally upgraded you to the 
development version in our last release.
+!ENTITY https-everywhere.popup.title HTTPS Everywhere 4.0development.11 
известие
+!ENTITY https-everywhere.popup.paragraph1 Опс. Използвали 
сте стабилната версия на HTTPS Everywhere, но е 
възможно случайно да сме Ви надградили с 
разработваща се версия.
 !ENTITY https-everywhere.popup.paragraph2 Искате ли да се 
върнете към стабилната версия?
-!ENTITY https-everywhere.popup.paragraph3 We'd love it if you continued 
using our development release and helped us make HTTPS Everywhere better! You 
might find there are a few more bugs here and there, which you can report to 
https-everywh...@eff.org. Sorry about the inconvenience, and thank you for 
using HTTPS Everywhere.
-!ENTITY https-everywhere.popup.keep Keep me on the development version
+!ENTITY https-everywhere.popup.paragraph3 Ще се радваме, ако 
продължите да използвате нашата 
разработваща се версия и ни помогнете да 
направим HTTPS Everywhere по-добра! Може да 
откриете няколко грешки тук-там, които да 
докладвате на https-everywh...@eff.org. Извинете за 
неудобството и Ви благодарим, че 
използвате HTTPS Everywhere.
+!ENTITY https-everywhere.popup.keep Задържане на 
разработващата версия
 !ENTITY https-everywhere.popup.revert Изтегли 
най-актуалната стабилна версия
 
-!ENTITY https-everywhere.ruleset-tests.status_title HTTPS Everywhere Ruleset 
Tests
+!ENTITY https-everywhere.ruleset-tests.status_title Тестване 
правилата на HTTPS Everywhere
 !ENTITY https-everywhere.ruleset-tests.status_cancel_button Отказ
 !ENTITY https-everywhere.ruleset-tests.status_start_button Старт

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


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

2014-05-09 Thread translation
commit c4a648493019b39dbcf85d8b1f59c67594f49432
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 17:15:14 2014 +

Update translations for https_everywhere
---
 bg/https-everywhere.properties |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bg/https-everywhere.properties b/bg/https-everywhere.properties
index ad5b7c4..5c20247 100644
--- a/bg/https-everywhere.properties
+++ b/bg/https-everywhere.properties
@@ -5,4 +5,4 @@ https-everywhere.menu.noRules = (Няма правила за 
тази стра
 https-everywhere.menu.unknownRules = (Непознати правила за 
тази страница)
 https-everywhere.toolbar.hint = HTTPS Everywhere е активен. 
Можете да го превключвате от сайт на сайт 
чрез натискане на иконката в адресната 
лента.
 https-everywhere.migration.notification0 = За да се приложи 
критическа поправка, това обновление 
анулира вашите настройки на HTTPS Everywhere 
правилата към стандартните им стойности.
-https-everywhere.menu.ruleset-tests = Run HTTPS Everywhere Ruleset Tests
+https-everywhere.menu.ruleset-tests = Стартиране на тест за 
правилата на  HTTPS Everywhere

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


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

2014-05-09 Thread translation
commit 18aac1b156dfb11c926e009c7a312d001d214085
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 17:15:19 2014 +

Update translations for https_everywhere_completed
---
 bg/https-everywhere.properties |1 +
 1 file changed, 1 insertion(+)

diff --git a/bg/https-everywhere.properties b/bg/https-everywhere.properties
index b00a14a..5c20247 100644
--- a/bg/https-everywhere.properties
+++ b/bg/https-everywhere.properties
@@ -5,3 +5,4 @@ https-everywhere.menu.noRules = (Няма правила за 
тази стра
 https-everywhere.menu.unknownRules = (Непознати правила за 
тази страница)
 https-everywhere.toolbar.hint = HTTPS Everywhere е активен. 
Можете да го превключвате от сайт на сайт 
чрез натискане на иконката в адресната 
лента.
 https-everywhere.migration.notification0 = За да се приложи 
критическа поправка, това обновление 
анулира вашите настройки на HTTPS Everywhere 
правилата към стандартните им стойности.
+https-everywhere.menu.ruleset-tests = Стартиране на тест за 
правилата на  HTTPS Everywhere

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


[tor-commits] [ooni-probe/master] state null check

2014-05-09 Thread art
commit 8452924ad680658ff4f0cebfe5b44311aa7f2db3
Author: Arun Pandian G arunpandi...@gmail.com
Date:   Fri May 2 22:06:04 2014 +0530

state null check
---
 ooni/templates/httpt.py |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py
index 1263261..59b550e 100644
--- a/ooni/templates/httpt.py
+++ b/ooni/templates/httpt.py
@@ -327,7 +327,8 @@ class HTTPTest(NetTestCase):
 
 if use_tor:
 state = config.tor_state
-state.add_stream_listener(StreamListener(request))
+if state:
+state.add_stream_listener(StreamListener(request))
 
 d = agent.request(request['method'], request['url'], headers,
 body_producer)



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


[tor-commits] [ooni-probe/master] Call .path on FilePath instead of using os.path.

2014-05-09 Thread art
commit c82275034f71f60276e58012dacf4c0293422c0f
Author: Arturo Filastò a...@fuffa.org
Date:   Fri May 9 22:42:21 2014 +0200

Call .path on FilePath instead of using os.path.
---
 ooni/deck.py |   26 ++
 ooni/oonicli.py  |2 +-
 ooni/reporter.py |6 +++---
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/ooni/deck.py b/ooni/deck.py
index 8a26d0c..ad90d03 100644
--- a/ooni/deck.py
+++ b/ooni/deck.py
@@ -21,7 +21,7 @@ class InputFile(object):
 cache_path = os.path.join(os.path.abspath(base_path), input_hash)
 self.cached_file = cache_path
 self.cached_descriptor = cache_path + '.desc'
-
+
 @property
 def descriptorCached(self):
 if os.path.exists(self.cached_descriptor):
@@ -30,7 +30,7 @@ class InputFile(object):
 self.load(descriptor)
 return True
 return False
-
+
 @property
 def fileCached(self):
 if os.path.exists(self.cached_file):
@@ -52,7 +52,7 @@ class InputFile(object):
 'date': self.date,
 'description': self.description
 }, f)
-
+
 def load(self, descriptor):
 self.name = descriptor['name']
 self.version = descriptor['version']
@@ -69,7 +69,7 @@ class InputFile(object):
 def nettest_to_path(path, allow_arbitrary_paths=False):
 
 Takes as input either a path or a nettest name.
-
+
 Args:
 
 allow_arbitrary_paths:
@@ -81,13 +81,15 @@ def nettest_to_path(path, allow_arbitrary_paths=False):
 
 if allow_arbitrary_paths and os.path.exists(path):
 return path
-elif FilePath(config.nettest_directory).preauthChild(path + 
'.py').exists():
-return os.path.join(config.nettest_directory, path + '.py')
+
+fp = FilePath(config.nettest_directory).preauthChild(path + '.py')
+if fp.exists():
+return fp.path
 else:
 raise e.NetTestNotFound(path)
 
 class Deck(InputFile):
-def __init__(self, deck_hash=None, 
+def __init__(self, deck_hash=None,
  deckFile=None,
  decks_directory=config.decks_directory):
 self.id = deck_hash
@@ -107,7 +109,7 @@ class Deck(InputFile):
 @property
 def cached_file(self):
 return os.path.join(self.decksDirectory, self.deckHash)
-   
+
 @property
 def cached_descriptor(self):
 return self.cached_file + '.desc'
@@ -162,7 +164,7 @@ class Deck(InputFile):
 if self.bouncer:
 log.msg(Looking up test helpers...)
 yield self.lookupTestHelpers()
-
+
 @defer.inlineCallbacks
 def lookupTestHelpers(self):
 self.oonibclient.address = self.bouncer
@@ -178,7 +180,7 @@ class Deck(InputFile):
 if th['test_class'].localOptions[th['option']]:
 continue
 required_test_helpers.append(th['name'])
-
+
 if not required_test_helpers and not requires_collector:
 defer.returnValue(None)
 
@@ -212,7 +214,7 @@ class Deck(InputFile):
 if 'url' in i:
 log.debug(Downloading %s % i['url'])
 self.oonibclient.address = i['address']
-
+
 try:
 input_file = yield 
self.oonibclient.downloadInput(i['hash'])
 except:
@@ -222,5 +224,5 @@ class Deck(InputFile):
 input_file.verify()
 except AssertionError:
 raise e.UnableToLoadDeckInput, cached_path
-
+
 i['test_class'].localOptions[i['key']] = input_file.cached_file
diff --git a/ooni/oonicli.py b/ooni/oonicli.py
index 889b108..9bd1add 100644
--- a/ooni/oonicli.py
+++ b/ooni/oonicli.py
@@ -181,7 +181,7 @@ def runWithDirector(logging=True, start_tor=True):
 except Exception as e:
 log.err(e)
 sys.exit(5)
-
+
 d = director.start(start_tor=start_tor)
 
 def setup_nettest(_):
diff --git a/ooni/reporter.py b/ooni/reporter.py
index a512891..273242e 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -171,7 +171,7 @@ class YAMLReporter(OReporter):
 
 if not os.path.isdir(report_destination):
 raise InvalidDestination
-
+
 if not report_filename:
 report_filename = report- + \
   test_details['test_name'] + - + \
@@ -301,7 +301,7 @@ class OONIBReporter(OReporter):
 
 from txsocksx.http import SOCKS5Agent
 from twisted.internet import reactor
-
+
 if self.collectorAddress.startswith('httpo://'):
 self.collectorAddress = \
 self.collectorAddress.replace('httpo://', 'http://')
@@ -369,7 +369,7 @@ class OONIBReporter(OReporter):
 log.err(Failed to parse collector response %s % backend_response)
 log.exception(e)
 raise errors.OONIBReportCreationError
-   
+
 if 

[tor-commits] [ooni-probe/master] Store tor exit router's ip and name with every request

2014-05-09 Thread art
commit b57552d009e6d8af08a66a88e01897faed5ba945
Author: Arun Pandian G arunpandi...@gmail.com
Date:   Tue Apr 8 03:12:12 2014 +0530

Store tor exit router's ip and name with every request
---
 ooni/templates/httpt.py |   46 +-
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py
index 403e222..c9e42bf 100644
--- a/ooni/templates/httpt.py
+++ b/ooni/templates/httpt.py
@@ -2,10 +2,14 @@ import copy
 import random
 import struct
 
+from zope.interface import implements
+
 from twisted.plugin import IPlugin
 from twisted.internet import protocol, defer
 from twisted.internet.ssl import ClientContextFactory
 
+from txtorcon.interface import IStreamListener
+
 from twisted.internet import reactor
 from twisted.internet.error import ConnectionRefusedError, DNSLookupError, 
TCPTimedOutError
 from twisted.internet.endpoints import TCP4ClientEndpoint
@@ -18,7 +22,6 @@ from ooni.utils import log
 from ooni.settings import config
 
 from ooni.utils.net import BodyReceiver, StringProducer, userAgents
-
 from ooni.utils.trueheaders import TrueHeaders
 from ooni.errors import handleAllFailures
 
@@ -26,6 +29,33 @@ from ooni.errors import handleAllFailures
 class InvalidSocksProxyOption(Exception):
 pass
 
+class StreamListener(object):
+implements(IStreamListener)
+
+def __init__(self, request):
+self.request = request
+
+def stream_new(self, stream):
+pass
+
+def stream_succeeded(self, stream):
+host=self.request['url'].split('/')[2]
+try:
+if stream.target_host == host and len(self.request['tor']) == 1:
+self.request['tor']['exit_ip'] = stream.circuit.path[-1].ip
+self.request['tor']['exit_name'] = stream.circuit.path[-1].name
+except:
+log.err(Tor Exit ip detection failed)
+
+def stream_attach(self, stream, circuit):
+pass
+
+def stream_closed(self, stream,**k):
+pass
+
+def stream_failed(self, stream, reason, remote_reason):
+pass
+
 class HTTPTest(NetTestCase):
 
 A utility class for dealing with HTTP based testing. It provides methods to
@@ -228,7 +258,7 @@ class HTTPTest(NetTestCase):
 content_length = 
int(response.headers.getRawHeaders('content-length')[0])
 except Exception:
 content_length = None
-
+
 finished = defer.Deferred()
 response.deliverBody(BodyReceiver(finished, content_length))
 finished.addCallback(self._processResponseBody, request,
@@ -285,9 +315,11 @@ class HTTPTest(NetTestCase):
 request['url'] = url
 request['headers'] = headers
 request['body'] = body
-request['tor'] = False
+request['tor'] = {}
 if use_tor:
-request['tor'] = True
+request['tor']['is_tor'] = True
+else:
+request['tor']['is_tor'] = False
 
 if self.randomizeUA:
 log.debug(Randomizing user agent)
@@ -306,7 +338,7 @@ class HTTPTest(NetTestCase):
 headers = TrueHeaders(request['headers'])
 
 def errback(failure, request):
-if request['tor']:
+if request['tor']['is_tor']:
 log.err(Error performing torified request: %s % 
request['url'])
 else:
 log.err(Error performing request: %s % request['url'])
@@ -314,6 +346,10 @@ class HTTPTest(NetTestCase):
 self.addToReport(request, failure_string=failure_string)
 return failure
 
+if use_tor:
+state = config.tor_state
+state.add_stream_listener(StreamListener(request))
+
 d = agent.request(request['method'], request['url'], headers,
 body_producer)
 d.addErrback(errback, request)



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


[tor-commits] [ooni-probe/master] Merge branch 'master' of github.com:TheTorProject/ooni-probe

2014-05-09 Thread art
commit 0e3e52c68f5fa6ac6926f2eb5e6eec4351711beb
Merge: c822750 41ea9d7
Author: Arturo Filastò a...@fuffa.org
Date:   Fri May 9 22:44:17 2014 +0200

Merge branch 'master' of github.com:TheTorProject/ooni-probe

* 'master' of github.com:TheTorProject/ooni-probe:
  Update Readme to point to correct file location.
  state null check
  Refactorings
  removed unnecessary imports
  Store tor exit router's ip and name with every request

 README.md   |2 +-
 ooni/templates/httpt.py |   42 +-
 2 files changed, 30 insertions(+), 14 deletions(-)

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


[tor-commits] [ooni-probe/master] Refactorings

2014-05-09 Thread art
commit 53f207416383b7782639d0ee2177580ba23bc5e7
Author: Arun Pandian G arunpandi...@gmail.com
Date:   Tue Apr 8 04:12:03 2014 +0530

Refactorings
---
 ooni/templates/httpt.py |   20 +++-
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py
index 44d01be..1263261 100644
--- a/ooni/templates/httpt.py
+++ b/ooni/templates/httpt.py
@@ -1,10 +1,8 @@
 import random
 
-from zope.interface import implements
-
 from twisted.internet import defer
 
-from txtorcon.interface import IStreamListener
+from txtorcon.interface import StreamListenerMixin
 
 from twisted.internet import reactor
 from twisted.internet.endpoints import TCP4ClientEndpoint
@@ -22,33 +20,21 @@ from ooni.errors import handleAllFailures
 class InvalidSocksProxyOption(Exception):
 pass
 
-class StreamListener(object):
-implements(IStreamListener)
+class StreamListener(StreamListenerMixin):
 
 def __init__(self, request):
 self.request = request
 
-def stream_new(self, stream):
-pass
-
 def stream_succeeded(self, stream):
 host=self.request['url'].split('/')[2]
 try:
 if stream.target_host == host and len(self.request['tor']) == 1:
 self.request['tor']['exit_ip'] = stream.circuit.path[-1].ip
 self.request['tor']['exit_name'] = stream.circuit.path[-1].name
+config.tor_state.stream_listeners.remove(self)
 except:
 log.err(Tor Exit ip detection failed)
 
-def stream_attach(self, stream, circuit):
-pass
-
-def stream_closed(self, stream,**k):
-pass
-
-def stream_failed(self, stream, reason, remote_reason):
-pass
-
 class HTTPTest(NetTestCase):
 
 A utility class for dealing with HTTP based testing. It provides methods to



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


[tor-commits] [ooni-probe/master] removed unnecessary imports

2014-05-09 Thread art
commit f8162d8f4a32f0e70625ef35042609bfb06fbb7d
Author: Arun Pandian G arunpandi...@gmail.com
Date:   Tue Apr 8 03:20:49 2014 +0530

removed unnecessary imports
---
 ooni/templates/httpt.py |9 +
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py
index c9e42bf..44d01be 100644
--- a/ooni/templates/httpt.py
+++ b/ooni/templates/httpt.py
@@ -1,20 +1,13 @@
-import copy
 import random
-import struct
 
 from zope.interface import implements
 
-from twisted.plugin import IPlugin
-from twisted.internet import protocol, defer
-from twisted.internet.ssl import ClientContextFactory
+from twisted.internet import defer
 
 from txtorcon.interface import IStreamListener
 
 from twisted.internet import reactor
-from twisted.internet.error import ConnectionRefusedError, DNSLookupError, 
TCPTimedOutError
 from twisted.internet.endpoints import TCP4ClientEndpoint
-from twisted.web._newclient import Request, Response, ResponseNeverReceived
-from twisted.web.client import Agent
 from ooni.utils.trueheaders import TrueHeadersAgent, TrueHeadersSOCKS5Agent
 
 from ooni.nettest import NetTestCase



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


[tor-commits] [ooni-probe/master] Update Readme to point to correct file location.

2014-05-09 Thread art
commit 41ea9d71a65c195a08a21b05fe651eb77d12f89d
Author: Arturo Filastò hell...@users.noreply.github.com
Date:   Fri May 9 16:35:14 2014 +0200

Update Readme to point to correct file location.
---
 README.md |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index a59481e..b596e1f 100644
--- a/README.md
+++ b/README.md
@@ -105,7 +105,7 @@ ooniprobe will be installed in `/ooni`.
 3) You can run tests with:
 
 ```
-ooniprobe blocking/http_requests -f /ooni/inputs/input-pack/alexa-top-1k.txt
+ooniprobe blocking/http_requests -f /ooni/example_inputs/alexa-top-1k.txt
 ```
 
 ## Using ooniprobe



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


[tor-commits] [ooni-probe/master] Merge pull request #299 from arunpandianp/enhancement/http_req

2014-05-09 Thread art
commit d17fe2556aa32b6fe6eed17d03bb82278348c907
Merge: 1d308e3 8452924
Author: Arturo Filastò hell...@users.noreply.github.com
Date:   Mon May 5 15:12:05 2014 +0200

Merge pull request #299 from arunpandianp/enhancement/http_req

Enhancement/http_req

 ooni/templates/httpt.py |   42 +-
 1 file changed, 29 insertions(+), 13 deletions(-)



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


[tor-commits] [ooni-probe/master] Bump to version 1.0.2

2014-05-09 Thread art
commit b0fd64e5dd670becdb98982014d8b7510578cdec
Author: Arturo Filastò a...@fuffa.org
Date:   Fri May 9 22:53:09 2014 +0200

Bump to version 1.0.2
---
 ChangeLog.md |   14 ++
 debian/changelog |6 ++
 ooni/__init__.py |2 +-
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/ChangeLog.md b/ChangeLog.md
index fda5db1..0ce2a43 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,17 @@
+## v1.0.2
+
+* Add ooniprobe manpage.
+
+* Fix various security issues raised by the least authority audit.
+
+* Add a test that checks for Tor bridge reachability.
+
+* Record the IP address of the exit node being used in torified requests.
+
+* Captive portal test now uses the ooni-probe test templates.
+
+* Have better test naming consistency.
+
 ## v1.0.1
 
 * Fix bugs in the traceroute test that lead to not all packets being collected.
diff --git a/debian/changelog b/debian/changelog
index 150b378..af347a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ooniprobe (1.0.2-1) stable; urgency=low
+
+  * ooniprobe 1.0.2
+
+ -- OONI Developers (signing key) ooni-...@lists.torproject.org  Fri, 9 May 
2014 10:14:46 +0200
+
 ooniprobe (1.0.1-1) stable; urgency=low
 
   * ooniprobe 1.0.1
diff --git a/ooni/__init__.py b/ooni/__init__.py
index 86f02b3..f44ca57 100644
--- a/ooni/__init__.py
+++ b/ooni/__init__.py
@@ -1,7 +1,7 @@
 # -*- encoding: utf-8 -*-
 
 __author__ = Open Observatory of Network Interference
-__version__ = 1.0.1
+__version__ = 1.0.2
 
 __all__ = ['config', 'inputunit', 'kit',
'lib', 'nettest', 'oonicli', 'reporter',

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


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

2014-05-09 Thread translation
commit f0d0e0215d18a63e9d4c431da4582f5ec38bea42
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 21:15:09 2014 +

Update translations for torcheck
---
 nl/torcheck.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/nl/torcheck.po b/nl/torcheck.po
index b7eb362..3dd1e49 100644
--- a/nl/torcheck.po
+++ b/nl/torcheck.po
@@ -2,6 +2,7 @@
 # Copyright (C) 2008-2013 The Tor Project, Inc
 # 
 # Translators:
+# jjjdddsssxxx a227...@drdrb.net, 2014
 # erwindelaat erwin.de.l...@cleveridge.org, 2014
 # flabber flab...@online.be, 2011
 # erwindelaat erwin.de.l...@cleveridge.org, 2014
@@ -13,8 +14,8 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 POT-Creation-Date: 2012-02-16 20:28+PDT\n
-PO-Revision-Date: 2014-05-06 08:21+\n
-Last-Translator: runasand runa.sand...@gmail.com\n
+PO-Revision-Date: 2014-05-09 21:10+\n
+Last-Translator: jjjdddsssxxx a227...@drdrb.net\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -100,4 +101,4 @@ msgid JavaScript is disabled.
 msgstr JavaScript is uitgeschakeld.
 
 msgid However, it does not appear to be the Tor Browser Bundle.
-msgstr 
+msgstr Het blijkt echter niet de Tor Browser Bundle te zijn.

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


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

2014-05-09 Thread translation
commit 08b5801f48b8669e29d788a6241c966da7f3ee41
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 21:15:13 2014 +

Update translations for torcheck_completed
---
 nl/torcheck.po |8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/nl/torcheck.po b/nl/torcheck.po
index 199dbab..3dd1e49 100644
--- a/nl/torcheck.po
+++ b/nl/torcheck.po
@@ -2,6 +2,7 @@
 # Copyright (C) 2008-2013 The Tor Project, Inc
 # 
 # Translators:
+# jjjdddsssxxx a227...@drdrb.net, 2014
 # erwindelaat erwin.de.l...@cleveridge.org, 2014
 # flabber flab...@online.be, 2011
 # erwindelaat erwin.de.l...@cleveridge.org, 2014
@@ -13,8 +14,8 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 POT-Creation-Date: 2012-02-16 20:28+PDT\n
-PO-Revision-Date: 2014-02-19 13:50+\n
-Last-Translator: erwindelaat erwin.de.l...@cleveridge.org\n
+PO-Revision-Date: 2014-05-09 21:10+\n
+Last-Translator: jjjdddsssxxx a227...@drdrb.net\n
 Language-Team: Dutch 
(http://www.transifex.com/projects/p/torproject/language/nl/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -98,3 +99,6 @@ msgstr JavaScript is ingeschakeld.
 
 msgid JavaScript is disabled.
 msgstr JavaScript is uitgeschakeld.
+
+msgid However, it does not appear to be the Tor Browser Bundle.
+msgstr Het blijkt echter niet de Tor Browser Bundle te zijn.

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


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

2014-05-09 Thread translation
commit 061207d45c703184b30a58c1738211d02d2fb924
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 21:45:15 2014 +

Update translations for https_everywhere
---
 es_CL/https-everywhere.dtd|4 ++--
 es_CL/https-everywhere.properties |   16 
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/es_CL/https-everywhere.dtd b/es_CL/https-everywhere.dtd
index 9a63c45..f4b9697 100644
--- a/es_CL/https-everywhere.dtd
+++ b/es_CL/https-everywhere.dtd
@@ -12,8 +12,8 @@
 
 !ENTITY https-everywhere.menu.about About HTTPS Everywhere
 !ENTITY https-everywhere.menu.observatory SSL Observatory Preferences
-!ENTITY https-everywhere.menu.globalEnable Enable HTTPS Everywhere
-!ENTITY https-everywhere.menu.globalDisable Disable HTTPS Everywhere
+!ENTITY https-everywhere.menu.globalEnable Habilitar HTTPS en todas partes
+!ENTITY https-everywhere.menu.globalDisable Deshabilitar HTTPS en todas 
partes
 !ENTITY https-everywhere.menu.showCounter Show Counter
 
 !ENTITY https-everywhere.prefs.title HTTPS Everywhere Preferences
diff --git a/es_CL/https-everywhere.properties 
b/es_CL/https-everywhere.properties
index be83831..0699b5f 100644
--- a/es_CL/https-everywhere.properties
+++ b/es_CL/https-everywhere.properties
@@ -1,8 +1,8 @@
-https-everywhere.menu.globalEnable = Enable HTTPS Everywhere
-https-everywhere.menu.globalDisable = Disable HTTPS Everywhere
-https-everywhere.menu.enableDisable = Enable / Disable Rules
-https-everywhere.menu.noRules = (No Rules for This Page)
-https-everywhere.menu.unknownRules = (Rules for This Page Unknown)
-https-everywhere.toolbar.hint = HTTPS Everywhere is now active. You can toggle 
it on a site-by-site basis by clicking the icon in the address bar.
-https-everywhere.migration.notification0 = In order to implement a crucial 
fix, this update resets your HTTPS Everywhere rule preferences to their default 
values.
-https-everywhere.menu.ruleset-tests = Run HTTPS Everywhere Ruleset Tests
+https-everywhere.menu.globalEnable = Habilitar HTTPS en todas partes
+https-everywhere.menu.globalDisable = Deshabilitar HTTPS en todas partes
+https-everywhere.menu.enableDisable = Habilitar o deshabilitar regla
+https-everywhere.menu.noRules = (No hay reglas para esta página)
+https-everywhere.menu.unknownRules = (Reglas desconocidas para esta página)
+https-everywhere.toolbar.hint = HTTPS en todas partes está ahora habilitado, 
Puede deshabitarlo o habilitarlo en lado a lado usando el ícono en la barra de 
dirección.
+https-everywhere.migration.notification0 = En orden para implementar este 
crucial arreglo, Las reglas de HTTPS en todas partes se restablecerán a sus 
valores iniciales.
+https-everywhere.menu.ruleset-tests = Corriendo prueba de reglas de HTTPS en 
todas partes

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


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

2014-05-09 Thread translation
commit b313c9bc1fedcaa207be18cd4c7848745830c13e
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 21:45:19 2014 +

Update translations for https_everywhere_completed
---
 es_CL/https-everywhere.properties |8 
 1 file changed, 8 insertions(+)

diff --git a/es_CL/https-everywhere.properties 
b/es_CL/https-everywhere.properties
new file mode 100644
index 000..0699b5f
--- /dev/null
+++ b/es_CL/https-everywhere.properties
@@ -0,0 +1,8 @@
+https-everywhere.menu.globalEnable = Habilitar HTTPS en todas partes
+https-everywhere.menu.globalDisable = Deshabilitar HTTPS en todas partes
+https-everywhere.menu.enableDisable = Habilitar o deshabilitar regla
+https-everywhere.menu.noRules = (No hay reglas para esta página)
+https-everywhere.menu.unknownRules = (Reglas desconocidas para esta página)
+https-everywhere.toolbar.hint = HTTPS en todas partes está ahora habilitado, 
Puede deshabitarlo o habilitarlo en lado a lado usando el ícono en la barra de 
dirección.
+https-everywhere.migration.notification0 = En orden para implementar este 
crucial arreglo, Las reglas de HTTPS en todas partes se restablecerán a sus 
valores iniciales.
+https-everywhere.menu.ruleset-tests = Corriendo prueba de reglas de HTTPS en 
todas partes

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


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

2014-05-09 Thread translation
commit eb82094fa6f4962151f52e4b25ea005cd6fc51d3
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:04 2014 +

Update translations for gettor
---
 es/gettor.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/es/gettor.po b/es/gettor.po
index 4733390..7f31bd1 100644
--- a/es/gettor.po
+++ b/es/gettor.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # Gioyik gio...@gmail.com, 2011
 # henrycito henry.izuri...@gmail.com, 2014
 # Jacob Appelbaum ja...@appelbaum.net, 2009
@@ -14,8 +15,8 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-01-19 13:40+0100\n
-PO-Revision-Date: 2014-03-03 20:50+\n
-Last-Translator: henrycito henry.izuri...@gmail.com\n
+PO-Revision-Date: 2014-05-09 22:30+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -319,7 +320,7 @@ msgstr Desafortunadamente no hay archivo fraccionado 
disponible del paquete\nqu
 msgid 
 UNPACKING THE FILES\n
 ===
-msgstr DESEMPAQUETAR LOS ARCHIVOS\n
+msgstr DESEMPAQUETANDO LOS ARCHIVOS\n==
 
 #: lib/gettor/i18n.py:205
 msgid 

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


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

2014-05-09 Thread translation
commit 8b76dc57769165106fd47f1a6aa66c6abe6656f4
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:08 2014 +

Update translations for gettor_completed
---
 es/gettor.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/es/gettor.po b/es/gettor.po
index 4733390..7f31bd1 100644
--- a/es/gettor.po
+++ b/es/gettor.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # Gioyik gio...@gmail.com, 2011
 # henrycito henry.izuri...@gmail.com, 2014
 # Jacob Appelbaum ja...@appelbaum.net, 2009
@@ -14,8 +15,8 @@ msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2013-01-19 13:40+0100\n
-PO-Revision-Date: 2014-03-03 20:50+\n
-Last-Translator: henrycito henry.izuri...@gmail.com\n
+PO-Revision-Date: 2014-05-09 22:30+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -319,7 +320,7 @@ msgstr Desafortunadamente no hay archivo fraccionado 
disponible del paquete\nqu
 msgid 
 UNPACKING THE FILES\n
 ===
-msgstr DESEMPAQUETAR LOS ARCHIVOS\n
+msgstr DESEMPAQUETANDO LOS ARCHIVOS\n==
 
 #: lib/gettor/i18n.py:205
 msgid 

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


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

2014-05-09 Thread translation
commit 798214cb87d47c866fb35be1c54ff2a5bb1cc911
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:12 2014 +

Update translations for torcheck
---
 es/torcheck.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/es/torcheck.po b/es/torcheck.po
index 7201363..2157940 100644
--- a/es/torcheck.po
+++ b/es/torcheck.po
@@ -2,6 +2,7 @@
 # Copyright (C) 2008-2013 The Tor Project, Inc
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # cronayu itacron...@hotmail.com, 2012
 # Envite env...@rolamasao.org, 2013
 # Shyish jgongarr...@hotmail.com, 2011
@@ -13,8 +14,8 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 POT-Creation-Date: 2012-02-16 20:28+PDT\n
-PO-Revision-Date: 2014-05-07 13:40+\n
-Last-Translator: xocoyotzin\n
+PO-Revision-Date: 2014-05-09 22:30+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -88,7 +89,7 @@ msgid Donate to Support Tor
 msgstr Done para apoyar a Tor
 
 msgid Tor QA Site
-msgstr Preguntas y respuestas de Tor
+msgstr Sitio de preguntas y respuestas de Tor
 
 msgid Volunteer
 msgstr Voluntarios

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


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

2014-05-09 Thread translation
commit ec4eb377f8b7d3b912f68c466d453bfce3fd0b87
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:14 2014 +

Update translations for torcheck_completed
---
 es/torcheck.po |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/es/torcheck.po b/es/torcheck.po
index 7201363..2157940 100644
--- a/es/torcheck.po
+++ b/es/torcheck.po
@@ -2,6 +2,7 @@
 # Copyright (C) 2008-2013 The Tor Project, Inc
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # cronayu itacron...@hotmail.com, 2012
 # Envite env...@rolamasao.org, 2013
 # Shyish jgongarr...@hotmail.com, 2011
@@ -13,8 +14,8 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 POT-Creation-Date: 2012-02-16 20:28+PDT\n
-PO-Revision-Date: 2014-05-07 13:40+\n
-Last-Translator: xocoyotzin\n
+PO-Revision-Date: 2014-05-09 22:30+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -88,7 +89,7 @@ msgid Donate to Support Tor
 msgstr Done para apoyar a Tor
 
 msgid Tor QA Site
-msgstr Preguntas y respuestas de Tor
+msgstr Sitio de preguntas y respuestas de Tor
 
 msgid Volunteer
 msgstr Voluntarios

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


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

2014-05-09 Thread translation
commit a2f0313d6afeb67c1acd935d8b689825ece8670b
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:20 2014 +

Update translations for https_everywhere
---
 es/https-everywhere.dtd |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/es/https-everywhere.dtd b/es/https-everywhere.dtd
index ed3c8c5..f5c8f6c 100644
--- a/es/https-everywhere.dtd
+++ b/es/https-everywhere.dtd
@@ -1,4 +1,4 @@
-!ENTITY https-everywhere.about.title Acerca de HTTPS Everywhere (HTTPS en 
cualquier sitio)
+!ENTITY https-everywhere.about.title Acerca de HTTPS Everywhere (HTTPS en 
todos lados)
 !ENTITY https-everywhere.about.ext_name HTTPS Everywhere
 !ENTITY https-everywhere.about.ext_description ¡Cifre la Web! Utilice 
automáticamente la seguridad HTTPS en muchos sitios.
 !ENTITY https-everywhere.about.version Versión

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


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

2014-05-09 Thread translation
commit df059f4b0a12d938bae3d272682e0c8281132ee8
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:24 2014 +

Update translations for https_everywhere_completed
---
 es/https-everywhere.dtd |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/es/https-everywhere.dtd b/es/https-everywhere.dtd
index ed3c8c5..f5c8f6c 100644
--- a/es/https-everywhere.dtd
+++ b/es/https-everywhere.dtd
@@ -1,4 +1,4 @@
-!ENTITY https-everywhere.about.title Acerca de HTTPS Everywhere (HTTPS en 
cualquier sitio)
+!ENTITY https-everywhere.about.title Acerca de HTTPS Everywhere (HTTPS en 
todos lados)
 !ENTITY https-everywhere.about.ext_name HTTPS Everywhere
 !ENTITY https-everywhere.about.ext_description ¡Cifre la Web! Utilice 
automáticamente la seguridad HTTPS en muchos sitios.
 !ENTITY https-everywhere.about.version Versión

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


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

2014-05-09 Thread translation
commit e366461acc00f5bf6b526605627d109c64bd30e7
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:30 2014 +

Update translations for tails-greeter
---
 es/es.po |9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/es/es.po b/es/es.po
index 52343f9..fb3196f 100644
--- a/es/es.po
+++ b/es/es.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # Animalcustomize inach...@hotmail.com, 2014
 # Envite env...@rolamasao.org, 2013
 # strel, 2013-2014
@@ -11,9 +12,9 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
-POT-Creation-Date: 2014-03-17 13:54+0100\n
-PO-Revision-Date: 2014-04-12 17:20+\n
-Last-Translator: Animalcustomize inach...@hotmail.com\n
+POT-Creation-Date: 2014-04-27 13:07+0200\n
+PO-Revision-Date: 2014-05-09 22:40+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -91,7 +92,7 @@ msgstr Verifique la contraseña: 
 
 #: ../glade/optionswindow.glade.h:9
 msgid iPasswords do not match/i
-msgstr iLas contraseñas no concuerdan/i
+msgstr iLas contraseñas no coinciden/i
 
 #: ../glade/optionswindow.glade.h:10
 msgid Windows camouflage

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


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

2014-05-09 Thread translation
commit 1bb0eb294d86ee69577d17cb0deb82bcb11e42a3
Author: Translation commit bot translat...@torproject.org
Date:   Fri May 9 22:45:32 2014 +

Update translations for tails-greeter_completed
---
 es/es.po |9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/es/es.po b/es/es.po
index 52343f9..fb3196f 100644
--- a/es/es.po
+++ b/es/es.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# her_tor_es_ar cvma...@gmail.com, 2014
 # Animalcustomize inach...@hotmail.com, 2014
 # Envite env...@rolamasao.org, 2013
 # strel, 2013-2014
@@ -11,9 +12,9 @@ msgid 
 msgstr 
 Project-Id-Version: The Tor Project\n
 Report-Msgid-Bugs-To: \n
-POT-Creation-Date: 2014-03-17 13:54+0100\n
-PO-Revision-Date: 2014-04-12 17:20+\n
-Last-Translator: Animalcustomize inach...@hotmail.com\n
+POT-Creation-Date: 2014-04-27 13:07+0200\n
+PO-Revision-Date: 2014-05-09 22:40+\n
+Last-Translator: her_tor_es_ar cvma...@gmail.com\n
 Language-Team: Spanish 
(http://www.transifex.com/projects/p/torproject/language/es/)\n
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=UTF-8\n
@@ -91,7 +92,7 @@ msgstr Verifique la contraseña: 
 
 #: ../glade/optionswindow.glade.h:9
 msgid iPasswords do not match/i
-msgstr iLas contraseñas no concuerdan/i
+msgstr iLas contraseñas no coinciden/i
 
 #: ../glade/optionswindow.glade.h:10
 msgid Windows camouflage

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