[tor-commits] [onionperf/master] Minor spelling, adds TOC

2020-07-02 Thread karsten
commit 508d3bccedc56af6559bcb5e367172dffec73a05
Author: Ana Custura 
Date:   Thu Jul 2 10:02:47 2020 +0100

Minor spelling, adds TOC
---
 README.md | 26 ++
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 9f0faf4..b66d6bc 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,30 @@
 # OnionPerf
-
-[TOC]
+ * [Overview](#overview)
++ [What does OnionPerf do?](#what-does-onionperf-do-)
++ [What does OnionPerf *not* do?](#what-does-onionperf--not--do-)
+  * [Installation](#installation)
++ [Tor](#tor)
++ [TGen](#tgen)
++ [OnionPerf](#onionperf-1)
+  * [Measurement](#measurement)
++ [Starting and stopping measurements](#starting-and-stopping-measurements)
++ [Output directories and files](#output-directories-and-files)
++ [Changing Tor configurations](#changing-tor-configurations)
++ [Changing the TGen traffic model](#changing-the-tgen-traffic-model)
++ [Sharing measurement results](#sharing-measurement-results)
++ [Troubleshooting](#troubleshooting)
+  * [Analysis](#analysis)
++ [Analyzing measurement results](#analyzing-measurement-results)
++ [Visualizing measurement results](#visualizing-measurement-results)
++ [Interpreting the PDF output format](#interpreting-the-pdf-output-format)
++ [Interpreting the CSV output format](#interpreting-the-csv-output-format)
+  * [Contributing](#contributing)
 
 ## Overview
 
 ### What does OnionPerf do?
 
-OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, Onionperf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
+OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, OnionPerf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
 
 OnionPerf uses multiple processes and threads to download random data through 
Tor while tracking the performance of those downloads. The data is served and 
fetched on localhost using two TGen (traffic generator) processes, and is 
transferred through Tor using Tor client processes and an ephemeral Tor onion 
service. Tor control information and TGen performance statistics are logged to 
disk and analyzed once per day to produce a JSON analysis file that can later 
be used to visualize changes in Tor client performance over time.
 
@@ -180,7 +198,7 @@ For example, the hard-coded traffic model generated by 
OnionPerf and executed by
 
 ### Sharing measurement results
 
-Measurement results can be further analyzed and visualized on the measuring 
host. But in many cases it's more conventient to do analysis and visualization 
on another host, also to compare measurements from different hosts to each 
other.
+Measurement results can be further analyzed and visualized on the measuring 
host. But in many cases it's more convenient to do analysis and visualization 
on another host, also to compare measurements from different hosts to each 
other.
 
 There are at least two common ways of sharing measurement results:
 



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


[tor-commits] [onionperf/master] Always include error_code column in CSV output.

2020-07-02 Thread karsten
commit fc6e9702d3012edca463b96fbbe218bbff70d6c7
Author: Karsten Loesing 
Date:   Wed Jul 1 15:20:27 2020 +0200

Always include error_code column in CSV output.

We should include an error_code column in the CSV output, regardless
of whether data contains measurements with an error code or not.
Everything else is just too confusing to whoever processes these
files.

Fixes #40004.
---
 onionperf/visualization.py | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/onionperf/visualization.py b/onionperf/visualization.py
index 2107d5a..0a2a9d9 100644
--- a/onionperf/visualization.py
+++ b/onionperf/visualization.py
@@ -58,7 +58,8 @@ class TGenVisualization(Visualization):
 tgen_transfers = analysis.get_tgen_transfers(client)
 for transfer_id, transfer_data in tgen_transfers.items():
 transfer = {"transfer_id": transfer_id, "label": label,
-"filesize_bytes": 
transfer_data["filesize_bytes"]}
+"filesize_bytes": 
transfer_data["filesize_bytes"],
+"error_code": None}
 transfer["server"] = "onion" if ".onion:" in 
transfer_data["endpoint_remote"] else "public"
 if "elapsed_seconds" in transfer_data:
 s = transfer_data["elapsed_seconds"]
@@ -147,7 +148,7 @@ class TGenVisualization(Visualization):
 
 def __plot_errors_count(self):
 for server in self.data["server"].unique():
-if "error_code" in self.data.columns and 
self.data[self.data["server"] == server]["error_code"].count() > 0:
+if self.data[self.data["server"] == server]["error_code"].count() 
> 0:
 self.__draw_countplot(x="error_code", hue="label", 
hue_name="Data set",
   data=self.data[self.data["server"] == 
server],
   xlabel="Error code", ylabel="Downloads 
failed (#)",
@@ -155,7 +156,7 @@ class TGenVisualization(Visualization):
 
 def __plot_errors_time(self):
 for server in self.data["server"].unique():
-if "error_code" in self.data.columns and 
self.data[self.data["server"] == server]["error_code"].count() > 0:
+if self.data[self.data["server"] == server]["error_code"].count() 
> 0:
 self.__draw_stripplot(x="start", y="error_code", hue="label", 
hue_name="Data set",
  data=self.data[self.data["server"] == 
server],
  xlabel="Download start time", 
ylabel="Error code",



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


[tor-commits] [onionperf/master] Bump version to 0.5.

2020-07-02 Thread karsten
commit adece5d55b8eb7eab03167f5bdd91330ba195b36
Author: Karsten Loesing 
Date:   Thu Jul 2 21:06:31 2020 +0200

Bump version to 0.5.
---
 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index f779267..d15157f 100644
--- a/setup.py
+++ b/setup.py
@@ -6,7 +6,7 @@ with open('requirements.txt') as f:
 install_requires = f.readlines()
 
 setup(name='OnionPerf',
-  version='0.3',
+  version='0.5',
   description='A utility to monitor, measure, analyze, and visualize the 
performance of Tor and Onion Services',
   author='Rob Jansen',
   url='https://github.com/robgjansen/onionperf/',

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


[tor-commits] [onionperf/master] Merge branch 'task-40001' into develop

2020-07-02 Thread karsten
commit 454c045013ea2b6f669819fe702a0f794cc59927
Merge: 83e4b52 e305128
Author: Karsten Loesing 
Date:   Thu Jul 2 21:02:01 2020 +0200

Merge branch 'task-40001' into develop

 README.md| 558 ---
 onionperf/docs/Makefile  |  20 --
 onionperf/docs/conf.py   | 166 -
 onionperf/docs/index.rst |  21 --
 onionperf/docs/onionperf.rst | 269 -
 5 files changed, 208 insertions(+), 826 deletions(-)



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


[tor-commits] [onionperf/master] Merge branch 'task-40004' into develop

2020-07-02 Thread karsten
commit 83e4b52575576806f1879f3912f4a913c3e06747
Merge: 0a9c6ac fc6e970
Author: Karsten Loesing 
Date:   Thu Jul 2 10:43:05 2020 +0200

Merge branch 'task-40004' into develop

 onionperf/visualization.py | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)



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


[tor-commits] [onionperf/master] Rewrite a sentence, add a paragraph.

2020-07-02 Thread karsten
commit b677afc53c3885085c83c12b2b8f6967021f5033
Author: Karsten Loesing 
Date:   Thu Jul 2 16:19:08 2020 +0200

Rewrite a sentence, add a paragraph.
---
 README.md | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1f58f0d..46abd01 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ The following description was written with a Debian system in 
mind but should be
 
 ### Tor
 
-OnionPerf relies on the `tor` binary to start a Tor client process on the 
client side and a server side process to host onion services.
+OnionPerf relies on the `tor` binary to start a Tor process on the client side 
to make client requests and another Tor process on the server side to host 
onion services.
 
 The easiest way to satisfy this dependency is to install the `tor` package, 
which puts the `tor` binary into the `PATH` where OnionPerf will find it. 
Optionally, systemd can be instructed to make sure that `tor` is never started 
as a service:
 
@@ -288,6 +288,12 @@ The CSV output file contains the same data that is 
visualized in the PDF file. I
 - `time_to_first_byte` is the time in seconds (with microsecond precision) to 
download the first byte.
 - `time_to_last_byte` is the time in seconds (with microsecond precision) to 
download the last byte.
 
+### Visualizations on Tor Metrics
+
+The analysis and visualization steps above can all be done by using the 
OnionPerf tool. In addition to that it's possible to visualize OnionPerf 
analysis files using other tools.
+
+For example, the [Tor Metrics 
website](https://metrics.torproject.org/torperf.html) contains various graphs 
based OnionPerf data.
+
 ## Contributing
 
 The OnionPerf code is developed at 
https://gitlab.torproject.org/tpo/metrics/onionperf.



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


[tor-commits] [onionperf/master] Make README.md more useful.

2020-07-02 Thread karsten
commit 54e0bd21227ddb99b64a7d8eb8ca0c0457936d92
Author: Karsten Loesing 
Date:   Tue Jun 30 17:55:18 2020 +0200

Make README.md more useful.

This commit attempts to make README.md the primary, comprehensive
documentation for OnionPerf. There will be more documentation on the
wiki for things that change faster than we want to update a file in
Git or that are too specific for most users. But this README.md is
supposed to cover 90% of the questions that new users would have.

Implements #40001.
---
 README.md | 532 +-
 1 file changed, 181 insertions(+), 351 deletions(-)

diff --git a/README.md b/README.md
index 35d3b7d..9f0faf4 100644
--- a/README.md
+++ b/README.md
@@ -1,446 +1,276 @@
 # OnionPerf
 
-OnionPerf is a utility to track Tor and onion service performance.
-
-OnionPerf uses multiple processes and threads to download random data
-through Tor while tracking the performance of those downloads. The data is
-served and fetched on localhost using two TGen (traffic generator)
-processes, and is transferred through Tor using Tor client processes and
-an ephemeral Tor Onion Service. Tor control information and TGen
-performance statistics are logged to disk, analyzed once per day to
-produce a json stats database and files that can feed into Torperf, and
-can later be used to visualize changes in Tor client performance over time.
-
-For more information, see https://git.torproject.org/onionperf
-
-## Table of contents
-
-* [Quick deployment instructions](#quick-deployment-instructions)
-* [Step-by-step installation 
instructions](#step-by-step-installation-instructions)
-  - [Get OnionPerf](#get-onionperf)
-  - [Install System Dependencies](#install-system-dependencies)
-  - [Install Python modules](#install-python-modules)
-  - [Build Tor](#build-tor)
-  - [Build TGen Traffic Generator](#build-tgen-traffic-generator)
-  - [Build and Install OnionPerf](#build-and-install-onionperf)
-* [Run OnionPerf](#run-onionperf)
-  - [Measure Tor](#measure-tor)
-  - [Analyze and Visualize Results](#analyze-and-visualize-results)
-  - [Troubleshooting](#troubleshooting)
-* [Contribute](#contribute)
-
-## Quick deployment instructions
-
-These are the quick deployment instructions for the current Debian stable 
distribution.
+[TOC]
 
-```
-sudo apt install git cmake make build-essential gcc libigraph0-dev 
libglib2.0-dev python3-dev libxml2-dev python3-lxml python3-networkx 
python3-scipy python3-matplotlib python3-numpy libevent-dev libssl-dev 
python3-stem python3-pandas python3-seaborn python3-setuptools tor
+## Overview
 
-git clone https://github.com/shadow/tgen.git
-cd tgen
-mkdir build
-cd build
-cmake .. -DCMAKE_INSTALL_PREFIX=/home/$USER/.local
-make
-sudo ln -s ~/tgen/build/tgen /usr/bin/tgen
+### What does OnionPerf do?
 
-git clone https://github.com/torproject/onionperf
-cd onionperf
-python3 setup.py build
-python3 setup.py install --user
-```
+OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, Onionperf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
 
-Once the installation finished, you can find the onionperf script in
-`~/.local/bin/`.
+OnionPerf uses multiple processes and threads to download random data through 
Tor while tracking the performance of those downloads. The data is served and 
fetched on localhost using two TGen (traffic generator) processes, and is 
transferred through Tor using Tor client processes and an ephemeral Tor onion 
service. Tor control information and TGen performance statistics are logged to 
disk and analyzed once per day to produce a JSON analysis file that can later 
be used to visualize changes in Tor client performance over time.
 
-## Step-by-step installation instructions
+### What does OnionPerf *not* do?
 
-Here you can find more detailed instructions for the current Debian stable 
distribution.
+OnionPerf does not attempt to simulate complex traffic patterns like a 
web-browsing user or a voice-chatting user. It measures a very specific user 
model: a bulk 5 MiB file download over Tor.
 
-### Get OnionPerf
+OnionPerf does not interfere with how Tor selects paths and builds circuits, 
other than setting configuration values as specified by the user. As a result 
it cannot be used to measure specific relays nor to scan the entire Tor network.
 
-```
-git clone https://git.torproject.org/onionperf.git
-cd onionperf
-```
+## Installation
 
-### Install System Dependencies
+OnionPerf has a couple dependencies in order to perform measurements or 
analyze and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a couple Python packages.
 
-  + **Tor** (>= v0.2.7.3-rc): libevent, openssl
-  + **TGen** (Shadow >= 

[tor-commits] [onionperf/master] Write generated torrc files to disk.

2020-07-02 Thread karsten
commit 30949a4218cf06c8e73927ec0db06dfa6d662294
Author: Karsten Loesing 
Date:   Wed Jul 1 16:50:57 2020 +0200

Write generated torrc files to disk.

Implements #40002.
---
 onionperf/measurement.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/onionperf/measurement.py b/onionperf/measurement.py
index 4a58bc4..1540bac 100644
--- a/onionperf/measurement.py
+++ b/onionperf/measurement.py
@@ -439,6 +439,9 @@ WarnUnsafeSocks 0\nSafeLogging 0\nMaxCircuitDirtiness 60 
seconds\nDataDirectory
 
 if not os.path.exists(tor_datadir): os.makedirs(tor_datadir)
 tor_config = 
self.create_tor_config(control_port,socks_port,tor_datadir,name)
+tor_confpath = "{0}/torrc".format(tor_datadir)
+with open(tor_confpath, 'wt') as f:
+f.write(tor_config)
 
 tor_logpath = "{0}/onionperf.tor.log".format(tor_datadir)
 tor_writable = util.FileWritable(tor_logpath)



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


[tor-commits] [onionperf/master] Update table of contents.

2020-07-02 Thread karsten
commit e30512870f0cccfa29f54b778025fa4d71417a19
Author: Karsten Loesing 
Date:   Thu Jul 2 20:58:41 2020 +0200

Update table of contents.

Updated using: https://ecotrust-canada.github.io/markdown-toc/
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 46abd01..77384c6 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
 # OnionPerf
- * [Overview](#overview)
+
+  * [Overview](#overview)
 + [What does OnionPerf do?](#what-does-onionperf-do-)
 + [What does OnionPerf *not* do?](#what-does-onionperf--not--do-)
   * [Installation](#installation)
@@ -18,6 +19,7 @@
 + [Visualizing measurement results](#visualizing-measurement-results)
 + [Interpreting the PDF output format](#interpreting-the-pdf-output-format)
 + [Interpreting the CSV output format](#interpreting-the-csv-output-format)
++ [Visualizations on Tor Metrics](#visualizations-on-tor-metrics)
   * [Contributing](#contributing)
 
 ## Overview



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


[tor-commits] [onionperf/master] Merge branch 'task-40002' into develop

2020-07-02 Thread karsten
commit 0a9c6aca86f44660e4895c643484c0c16fc9c705
Merge: 3e1d149 30949a4
Author: Karsten Loesing 
Date:   Thu Jul 2 10:22:24 2020 +0200

Merge branch 'task-40002' into develop

 onionperf/measurement.py | 3 +++
 1 file changed, 3 insertions(+)



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


[tor-commits] [onionperf/master] Adds links to TGen documentation

2020-07-02 Thread karsten
commit e67947bf7a8879dadbadcd7e141a6e0dc3825f68
Author: Ana Custura 
Date:   Thu Jul 2 10:21:32 2020 +0100

Adds links to TGen documentation
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index b66d6bc..7ffb900 100644
--- a/README.md
+++ b/README.md
@@ -194,7 +194,9 @@ onionperf measure --additional-client-conf="UseBridges 
1\nBridge 72.14.177.231:9
 
 OnionPerf is a relatively simple tool that can be adapted to do more complex 
measurements beyond what can be configured on the command line.
 
-For example, the hard-coded traffic model generated by OnionPerf and executed 
by the TGen processes is to send a small request from client to server and 
receive a relatively large response of 5 MiB of random data back. This model 
can be changed by editing `~/onionperf/onionperf/model.py`, rebuilding, and 
restarting measurements. For specifics, see the TGen documentation.
+For example, the hard-coded traffic model generated by OnionPerf and executed 
by the TGen processes is to send a small request from client to server and 
receive a relatively large response of 5 MiB of random data back. This model 
can be changed by editing `~/onionperf/onionperf/model.py`, rebuilding, and 
restarting measurements. For specifics, see the [TGen
+documentation](https://github.com/shadow/tgen/blob/master/doc/TGen-Overview.md)
+and [TGen traffic model 
examples](https://github.com/shadow/tgen/blob/master/tools/scripts/generate_tgen_config.py).
 
 ### Sharing measurement results
 



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


[tor-commits] [onionperf/master] Remove outdated documentation line.

2020-07-02 Thread karsten
commit 3e1d149f514d65a8083dd8c044f7a73b52457d28
Author: Karsten Loesing 
Date:   Mon Jun 22 16:59:52 2020 +0200

Remove outdated documentation line.

This really serves as test commit to try out whether mirroring to
GitLab works as expected.
---
 README.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/README.md b/README.md
index eee945f..35d3b7d 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,6 @@ can later be used to visualize changes in Tor client 
performance over time.
 
 For more information, see https://git.torproject.org/onionperf
 
-For a dockerized setup, see https://github.com/hiromipaw/onionperf-docker
-
 ## Table of contents
 
 * [Quick deployment instructions](#quick-deployment-instructions)



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


[tor-commits] [onionperf/master] Add CDF-DL graph.

2020-07-02 Thread karsten
commit 4d35984f50cb80c53c81d3b211c7aaea3551e923
Author: Karsten Loesing 
Date:   Thu May 28 22:46:01 2020 +0200

Add CDF-DL graph.

Implements #33257.
---
 onionperf/visualization.py | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/onionperf/visualization.py b/onionperf/visualization.py
index 339291a..2107d5a 100644
--- a/onionperf/visualization.py
+++ b/onionperf/visualization.py
@@ -44,6 +44,7 @@ class TGenVisualization(Visualization):
 self.__plot_lastbyte_box()
 self.__plot_lastbyte_bar()
 self.__plot_lastbyte_time()
+self.__plot_throughput_ecdf()
 self.__plot_downloads_count()
 self.__plot_errors_count()
 self.__plot_errors_time()
@@ -61,6 +62,16 @@ class TGenVisualization(Visualization):
 transfer["server"] = "onion" if ".onion:" in 
transfer_data["endpoint_remote"] else "public"
 if "elapsed_seconds" in transfer_data:
 s = transfer_data["elapsed_seconds"]
+if "payload_progress" in s:
+   # Explanation of the math below for computing 
Mbps: From filesize_bytes
+   # and payload_progress fields we can compute 
the number of seconds that
+   # have elapsed between receiving bytes 524,288 
and 1,048,576, which is a
+   # total amount of 524,288 bytes or 4,194,304 
bits or 4.194304 megabits.
+   # We want the reciprocal of that value with 
unit megabits per second.
+   if transfer_data["filesize_bytes"] == 1048576 
and "1.0" in s["payload_progress"]:
+   transfer["mbps"] = 4.194304 / 
(s["payload_progress"]["1.0"] - s["payload_progress"]["0.5"])
+   if transfer_data["filesize_bytes"] == 5242880 
and "0.2" in s["payload_progress"]:
+   transfer["mbps"] = 4.194304 / 
(s["payload_progress"]["0.2"] - s["payload_progress"]["0.1"])
 if "first_byte" in s:
 transfer["time_to_first_byte"] = 
s["first_byte"]
 if "last_byte" in s:
@@ -119,6 +130,13 @@ class TGenVisualization(Visualization):
  title="Time to download last of {0} bytes 
from {1} service over time".format(bytes, server),
  xlabel="Download start time", 
ylabel="Download time (s)")
 
+def __plot_throughput_ecdf(self):
+for server in self.data["server"].unique():
+self.__draw_ecdf(x="mbps", hue="label", hue_name="Data set",
+ data=self.data[self.data["server"] == server],
+ title="Throughput when downloading from {0} 
server".format(server),
+ xlabel="Throughput (Mbps)", ylabel="Cumulative 
Fraction")
+
 def __plot_downloads_count(self):
 for bytes in np.sort(self.data["filesize_bytes"].unique()):
 for server in self.data["server"].unique():



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


[tor-commits] [onionperf/master] Merge branch 'task-33257-2' into develop

2020-07-02 Thread karsten
commit 6a3ea78085532ce726a1e32413c99fc9f41a8d2b
Merge: 2c19e94 4d35984
Author: Karsten Loesing 
Date:   Thu Jun 18 15:33:45 2020 +0200

Merge branch 'task-33257-2' into develop

 onionperf/visualization.py | 18 ++
 1 file changed, 18 insertions(+)



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


[tor-commits] [onionperf/master] Rewrites/clarifies some text

2020-07-02 Thread karsten
commit 3c129c371a10a69a1789c1af4ac8495a0a783203
Author: Ana Custura 
Date:   Thu Jul 2 10:50:29 2020 +0100

Rewrites/clarifies some text
---
 README.md | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 7ffb900..1f58f0d 100644
--- a/README.md
+++ b/README.md
@@ -36,15 +36,15 @@ OnionPerf does not interfere with how Tor selects paths and 
builds circuits, oth
 
 ## Installation
 
-OnionPerf has a couple dependencies in order to perform measurements or 
analyze and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a couple Python packages.
+OnionPerf has several dependencies in order to perform measurements or analyze 
and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a few Python packages.
 
 The following description was written with a Debian system in mind but should 
be transferable to other Linux distributions and possibly even other operating 
systems.
 
 ### Tor
 
-OnionPerf relies on the `tor` binary to start a Tor client on the client side 
and another one on the server side to host onion services.
+OnionPerf relies on the `tor` binary to start a Tor client process on the 
client side and a server side process to host onion services.
 
-The easiest way is to install the `tor` package, which puts the `tor` binary 
into the `PATH` where OnionPerf will find it. Optionally, systemd can be 
instructed to make sure that `tor` is never started as a service:
+The easiest way to satisfy this dependency is to install the `tor` package, 
which puts the `tor` binary into the `PATH` where OnionPerf will find it. 
Optionally, systemd can be instructed to make sure that `tor` is never started 
as a service:
 
 ```shell
 sudo apt install tor
@@ -88,7 +88,7 @@ The TGen binary will be contained in `~/tgen/build/tgen`, 
which is also the path
 
 OnionPerf is written in Python 3. The following instructions assume that a 
Python virtual environment is being used, even though installation is also 
possible without that.
 
-The virtual environment is being created, activated, and tested using:
+The virtual environment is created, activated, and tested using:
 
 ```shell
 sudo apt install python3-venv
@@ -100,14 +100,14 @@ which python3
 
 The last command should output something like `~/venv/bin/python3` as the path 
to the `python3` binary used in the virtual environment.
 
-In the next step, the OnionPerf repository is being cloned and requirements 
are being installed:
+The next step is to clone the OnionPerf repository and install its 
requirements:
 
 ```shell
 git clone https://git.torproject.org/onionperf.git
 pip3 install --no-cache -r onionperf/requirements.txt
 ```
 
-The next step after that is to install OnionPerf and print out the usage 
information to see if the installation was successful:
+The final step is to install OnionPerf and print out the usage information to 
see if the installation was successful:
 
 ```shell
 cd onionperf/
@@ -122,7 +122,7 @@ The virtual environment is deactivated with the following 
command:
 deactivate
 ```
 
-However, in order to perform measurements or doing analyses, the virtual 
environment needs to be activated first. This will ensure all the paths are 
found.
+However, in order to perform measurements or analyses, the virtual environment 
needs to be activated first. This will ensure all the paths are found.
 
 
 ## Measurement
@@ -133,7 +133,7 @@ Ideally, OnionPerf is run detached from the terminal 
session using tmux, systemd
 
 ### Starting and stopping measurements
 
-The most trivial configuration is to measure onion services only. In that 
case, OnionPerf is taking care of all configurations, and there are no firewall 
rules or port forwards to take care of.
+The most trivial configuration is to measure onion services only. In that 
case, OnionPerf runs without needing any additional configuration. For direct 
measurements via exit nodes, firewall rules or port forwarding may be required 
to allow inbound connections to the TGen server.
 
 Starting these measurements is as simple as:
 



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


[tor-commits] [tor/master] Refactor channel_connect_for_circuit() to take an extend_info_t.

2020-07-02 Thread dgoulet
commit 1e97f968882f12edad20874ada99c2bd8542119d
Author: Nick Mathewson 
Date:   Wed Jul 1 14:42:55 2020 -0400

Refactor channel_connect_for_circuit() to take an extend_info_t.
---
 src/core/or/circuitbuild.c | 15 +++
 src/core/or/circuitbuild.h |  8 +---
 src/feature/relay/circuitbuild_relay.c |  6 +-
 src/test/test_circuitbuild.c   | 10 ++
 4 files changed, 11 insertions(+), 28 deletions(-)

diff --git a/src/core/or/circuitbuild.c b/src/core/or/circuitbuild.c
index 1f9b5050e..d1f097c25 100644
--- a/src/core/or/circuitbuild.c
+++ b/src/core/or/circuitbuild.c
@@ -94,12 +94,15 @@ static const node_t *choose_good_middle_server(uint8_t 
purpose,
  * callbacks.
  */
 MOCK_IMPL(channel_t *,
-channel_connect_for_circuit,(const tor_addr_t *addr, uint16_t port,
- const char *id_digest,
- const struct ed25519_public_key_t *ed_id))
+channel_connect_for_circuit,(const extend_info_t *ei))
 {
   channel_t *chan;
 
+  const tor_addr_t *addr = >addr;
+  uint16_t port = ei->port;
+  const char *id_digest = ei->identity_digest;
+  const ed25519_public_key_t *ed_id = >ed_identity;
+
   chan = channel_connect(addr, port, id_digest, ed_id);
   if (chan) command_setup_channel(chan);
 
@@ -581,11 +584,7 @@ circuit_handle_first_hop(origin_circuit_t *circ)
 circ->base_.n_hop = extend_info_dup(firsthop->extend_info);
 
 if (should_launch) {
-  n_chan = channel_connect_for_circuit(
-  >extend_info->addr,
-  firsthop->extend_info->port,
-  firsthop->extend_info->identity_digest,
-  >extend_info->ed_identity);
+  n_chan = channel_connect_for_circuit(firsthop->extend_info);
   if (!n_chan) { /* connect failed, forget the whole thing */
 log_info(LD_CIRC,"connect to firsthop failed. Closing.");
 return -END_CIRC_REASON_CONNECTFAILED;
diff --git a/src/core/or/circuitbuild.h b/src/core/or/circuitbuild.h
index bbb78eada..0cd1eb4f4 100644
--- a/src/core/or/circuitbuild.h
+++ b/src/core/or/circuitbuild.h
@@ -56,13 +56,7 @@ const node_t *choose_good_entry_server(uint8_t purpose,
struct circuit_guard_state_t **guard_state_out);
 void circuit_upgrade_circuits_from_guard_wait(void);
 
-struct ed25519_public_key_t;
-
-MOCK_DECL(channel_t *,
-channel_connect_for_circuit,(const tor_addr_t *addr,
- uint16_t port,
- const char *id_digest,
- const struct ed25519_public_key_t *ed_id));
+MOCK_DECL(channel_t *, channel_connect_for_circuit,(const extend_info_t *ei));
 
 struct create_cell_t;
 MOCK_DECL(int,
diff --git a/src/feature/relay/circuitbuild_relay.c 
b/src/feature/relay/circuitbuild_relay.c
index 36e64d9b3..881cbd51b 100644
--- a/src/feature/relay/circuitbuild_relay.c
+++ b/src/feature/relay/circuitbuild_relay.c
@@ -401,11 +401,7 @@ circuit_open_connection_for_extend(const struct 
extend_cell_t *ec,
 
   if (should_launch) {
 /* we should try to open a connection */
-channel_t *n_chan = channel_connect_for_circuit(
->n_hop->addr,
-circ->n_hop->port,
-circ->n_hop->identity_digest,
->n_hop->ed_identity);
+channel_t *n_chan = channel_connect_for_circuit(circ->n_hop);
 if (!n_chan) {
   log_info(LD_CIRC,"Launching n_chan failed. Closing circuit.");
   circuit_mark_for_close(circ, END_CIRC_REASON_CONNECTFAILED);
diff --git a/src/test/test_circuitbuild.c b/src/test/test_circuitbuild.c
index e1fbd333d..f7a27146b 100644
--- a/src/test/test_circuitbuild.c
+++ b/src/test/test_circuitbuild.c
@@ -1001,15 +1001,9 @@ mock_circuit_mark_for_close_(circuit_t *circ, int reason,
 static int mock_channel_connect_calls = 0;
 static channel_t *mock_channel_connect_nchan = NULL;
 static channel_t *
-mock_channel_connect_for_circuit(const tor_addr_t *addr,
- uint16_t port,
- const char *id_digest,
- const struct ed25519_public_key_t *ed_id)
+mock_channel_connect_for_circuit(const extend_info_t *ei)
 {
-  (void)addr;
-  (void)port;
-  (void)id_digest;
-  (void)ed_id;
+  (void)ei;
   mock_channel_connect_calls++;
   return mock_channel_connect_nchan;
 }



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


[tor-commits] [tor/master] Allow null ID argument to extend_info_new.

2020-07-02 Thread dgoulet
commit 6a0b9e47462d7c0bcb4598343cc7d6e7689216d7
Author: Nick Mathewson 
Date:   Wed Jul 1 14:20:17 2020 -0400

Allow null ID argument to extend_info_new.
---
 src/core/or/extendinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/core/or/extendinfo.c b/src/core/or/extendinfo.c
index 874a0a58f..8f506d774 100644
--- a/src/core/or/extendinfo.c
+++ b/src/core/or/extendinfo.c
@@ -35,7 +35,8 @@ extend_info_new(const char *nickname,
 const tor_addr_t *addr, uint16_t port)
 {
   extend_info_t *info = tor_malloc_zero(sizeof(extend_info_t));
-  memcpy(info->identity_digest, rsa_id_digest, DIGEST_LEN);
+  if (rsa_id_digest)
+memcpy(info->identity_digest, rsa_id_digest, DIGEST_LEN);
   if (ed_id && !ed25519_public_key_is_zero(ed_id))
 memcpy(>ed_identity, ed_id, sizeof(ed25519_public_key_t));
   if (nickname)



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


[tor-commits] [tor/master] Light edits to extend_info_t docs

2020-07-02 Thread dgoulet
commit 56e33f73f13110fe5eb255bf260a11c8a54d4267
Author: Nick Mathewson 
Date:   Tue Jun 30 15:11:54 2020 -0400

Light edits to extend_info_t docs
---
 src/core/or/extend_info_st.h | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/core/or/extend_info_st.h b/src/core/or/extend_info_st.h
index a66ce24cf..7f1187cb8 100644
--- a/src/core/or/extend_info_st.h
+++ b/src/core/or/extend_info_st.h
@@ -17,7 +17,7 @@
 
 /** Information on router used when extending a circuit. We don't need a
  * full routerinfo_t to extend: we only need addr:port:keyid to build an OR
- * connection, and onion_key to create the onionskin. Note that for onehop
+ * connection, and onion_key to create the onionskin. Note that for one-hop
  * general-purpose tunnels, the onion_key is NULL. */
 struct extend_info_t {
   char nickname[MAX_HEX_NICKNAME_LEN+1]; /**< This router's nickname for
@@ -28,7 +28,9 @@ struct extend_info_t {
   ed25519_public_key_t ed_identity;
   uint16_t port; /**< OR port. */
   tor_addr_t addr; /**< IP address. */
-  crypto_pk_t *onion_key; /**< Current onionskin key. */
+  /** TAP onion key for this hop. */
+  crypto_pk_t *onion_key;
+  /** Ntor onion key for this hop. */
   curve25519_public_key_t curve25519_onion_key;
 };
 



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


[tor-commits] [tor/master] Add a convenience function to check for unspec address.

2020-07-02 Thread dgoulet
commit cca3164f8d22492c40276ebda670836f93dab536
Author: Nick Mathewson 
Date:   Wed Jul 1 15:53:48 2020 -0400

Add a convenience function to check for unspec address.
---
 src/lib/net/address.h | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/lib/net/address.h b/src/lib/net/address.h
index 5ab654ef1..6b18919f6 100644
--- a/src/lib/net/address.h
+++ b/src/lib/net/address.h
@@ -95,6 +95,7 @@ static inline uint32_t tor_addr_to_ipv4n(const tor_addr_t *a);
 static inline uint32_t tor_addr_to_ipv4h(const tor_addr_t *a);
 static inline uint32_t tor_addr_to_mapped_ipv4h(const tor_addr_t *a);
 static inline sa_family_t tor_addr_family(const tor_addr_t *a);
+static inline bool tor_addr_is_unspec(const tor_addr_t *a);
 static inline const struct in_addr *tor_addr_to_in(const tor_addr_t *a);
 static inline int tor_addr_eq_ipv4h(const tor_addr_t *a, uint32_t u);
 
@@ -188,6 +189,15 @@ tor_addr_family(const tor_addr_t *a)
   return a->family;
 }
 
+/**
+ * Return true if the address @a is in the UNSPEC family.
+ **/
+static inline bool
+tor_addr_is_unspec(const tor_addr_t *a)
+{
+  return a->family == AF_UNSPEC;
+}
+
 /** Return an in_addr* equivalent to a, or NULL if a is not
  * an IPv4 address. */
 static inline const struct in_addr *



___
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 'tor-github/pr/1968'

2020-07-02 Thread dgoulet
commit 064e23e95c8d0d0fb762e1cb7699c4bd4c75ecb8
Merge: b0a716dfb c5707d6cf
Author: David Goulet 
Date:   Thu Jul 2 14:18:00 2020 -0400

Merge branch 'tor-github/pr/1968'

 scripts/maint/practracker/exceptions.txt |   1 +
 src/core/crypto/onion_crypto.c   |   2 +-
 src/core/or/channeltls.c |   8 +-
 src/core/or/circuitbuild.c   | 276 +---
 src/core/or/circuitbuild.h   |  23 +--
 src/core/or/circuitlist.c|   1 +
 src/core/or/circuituse.c |   5 +-
 src/core/or/connection_edge.c|   5 +-
 src/core/or/crypt_path.c |   2 +-
 src/core/or/extend_info_st.h |  16 +-
 src/core/or/extendinfo.c | 305 +++
 src/core/or/extendinfo.h |  40 
 src/core/or/include.am   |   2 +
 src/core/or/onion.h  |   3 +-
 src/core/or/relay.c  |   1 +
 src/feature/client/bridges.c |  18 +-
 src/feature/control/control_cmd.c|   1 +
 src/feature/hs/hs_circuit.c  |   1 +
 src/feature/hs/hs_client.c   |   1 +
 src/feature/hs/hs_common.c   |   1 +
 src/feature/hs/hs_service.c  |   1 +
 src/feature/nodelist/describe.c  |  10 +-
 src/feature/nodelist/routerset.c |  19 +-
 src/feature/relay/circuitbuild_relay.c   |   7 +-
 src/feature/relay/selftest.c |   6 +-
 src/feature/rend/rendclient.c|  11 +-
 src/feature/rend/rendcommon.c|  10 +-
 src/feature/rend/rendparse.c |  17 +-
 src/feature/rend/rendservice.c   |  17 +-
 src/lib/net/address.h|  10 +
 src/test/rend_test_helpers.c |  13 +-
 src/test/test.c  |  21 ++-
 src/test/test_circuitbuild.c |  20 +-
 src/test/test_circuitpadding.c   |   1 +
 src/test/test_hs_client.c|   6 +-
 src/test/test_nodelist.c |   4 +-
 src/test/test_policy.c   |   5 +-
 37 files changed, 559 insertions(+), 331 deletions(-)

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


[tor-commits] [tor/master] Allow multiple addresses in extend_info_t.

2020-07-02 Thread dgoulet
commit e93ad428e2507f676ce97450b919c2d849633669
Author: Nick Mathewson 
Date:   Tue Jun 30 16:06:05 2020 -0400

Allow multiple addresses in extend_info_t.

In practice, there will be at most one ipv4 address and ipv6 address
for now, but this code is designed to not care which address is
which until forced to do so.

This patch does not yet actually create extend_info_t objects with
multiple addresses.

Closes #34069.
---
 src/core/or/circuitbuild.c   | 79 ++--
 src/core/or/extend_info_st.h | 10 -
 src/core/or/extendinfo.c | 86 ++--
 src/core/or/extendinfo.h |  7 
 src/feature/client/bridges.c | 17 +++-
 src/feature/nodelist/describe.c  | 10 -
 src/feature/nodelist/routerset.c | 19 ++---
 src/feature/relay/selftest.c |  5 ++-
 src/feature/rend/rendclient.c| 10 -
 src/feature/rend/rendcommon.c|  9 -
 src/feature/rend/rendparse.c | 17 +---
 src/feature/rend/rendservice.c   | 16 +---
 src/test/rend_test_helpers.c | 13 --
 src/test/test.c  | 21 +++---
 src/test/test_circuitbuild.c | 10 ++---
 src/test/test_hs_client.c|  5 ++-
 src/test/test_nodelist.c |  4 +-
 src/test/test_policy.c   |  4 +-
 18 files changed, 250 insertions(+), 92 deletions(-)

diff --git a/src/core/or/circuitbuild.c b/src/core/or/circuitbuild.c
index d1f097c25..59ae58b98 100644
--- a/src/core/or/circuitbuild.c
+++ b/src/core/or/circuitbuild.c
@@ -98,12 +98,13 @@ channel_connect_for_circuit,(const extend_info_t *ei))
 {
   channel_t *chan;
 
-  const tor_addr_t *addr = >addr;
-  uint16_t port = ei->port;
+  const tor_addr_port_t *orport = extend_info_pick_orport(ei);
+  if (!orport)
+return NULL;
   const char *id_digest = ei->identity_digest;
   const ed25519_public_key_t *ed_id = >ed_identity;
 
-  chan = channel_connect(addr, port, id_digest, ed_id);
+  chan = channel_connect(>addr, orport->port, id_digest, ed_id);
   if (chan) command_setup_channel(chan);
 
   return chan;
@@ -551,7 +552,7 @@ circuit_handle_first_hop(origin_circuit_t *circ)
* - the address is internal, and
* - we're not connecting to a configured bridge, and
* - we're not configured to allow extends to private addresses. */
-  if (tor_addr_is_internal(>extend_info->addr, 0) &&
+  if (extend_info_any_orport_addr_is_internal(firsthop->extend_info) &&
   !extend_info_is_a_configured_bridge(firsthop->extend_info) &&
   !options->ExtendAllowPrivateAddresses) {
 log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
@@ -560,19 +561,19 @@ circuit_handle_first_hop(origin_circuit_t *circ)
   }
 
   /* now see if we're already connected to the first OR in 'route' */
-  log_debug(LD_CIRC,"Looking for firsthop '%s'",
-fmt_addrport(>extend_info->addr,
- firsthop->extend_info->port));
-
-  /* We'll cleanup this code in #33220, when we add an IPv6 address to
-   * extend_info_t. */
-  const bool addr_is_ipv4 =
-(tor_addr_family(>extend_info->addr) == AF_INET);
+  // TODO  S55 -- remove this log
+  log_debug(LD_CIRC,"Looking for firsthop for %s",
+extend_info_describe(firsthop->extend_info));
+
+  const tor_addr_port_t *orport4 =
+extend_info_get_orport(firsthop->extend_info, AF_INET);
+  const tor_addr_port_t *orport6 =
+extend_info_get_orport(firsthop->extend_info, AF_INET6);
   n_chan = channel_get_for_extend(
   firsthop->extend_info->identity_digest,
   >extend_info->ed_identity,
-  addr_is_ipv4 ? >extend_info->addr : NULL,
-  addr_is_ipv4 ? NULL : >extend_info->addr,
+  orport4 ? >addr : NULL,
+  orport6 ? >addr : NULL,
   ,
   _launch);
 
@@ -1075,42 +1076,40 @@ circuit_send_intermediate_onion_skin(origin_circuit_t 
*circ,
  crypt_path_t *hop)
 {
   int len;
-  int family = tor_addr_family(>extend_info->addr);
   extend_cell_t ec;
+  /* Relays and bridges can send IPv6 extends. But for clients, it's an
+   * obvious version distinguisher. */
+  const bool include_ipv6 = server_mode(get_options());
   memset(, 0, sizeof(ec));
+  tor_addr_make_unspec(_ipv4.addr);
+  tor_addr_make_unspec(_ipv6.addr);
 
   log_debug(LD_CIRC,"starting to send subsequent skin.");
 
-  /* Relays and bridges can send IPv6 extends. But for clients, it's an
-   * obvious version distinguisher. */
-  if (server_mode(get_options())) {
-if (family != AF_INET && family != AF_INET6) {
-  log_warn(LD_BUG, "Server trying to extend to an invalid address "
-   "family.");
-  return - END_CIRC_REASON_INTERNAL;
-}
-  } else {
-if (family != AF_INET) {
-  log_warn(LD_BUG, "Client trying to extend to a non-IPv4 address.");
-  return - 

[tor-commits] [tor/master] Add braces to IF_BUG_ONCE()s introduced in ticket34069.

2020-07-02 Thread dgoulet
commit c5707d6cf0d3009655ce4681a228c8d2767a9063
Author: Nick Mathewson 
Date:   Thu Jul 2 11:55:18 2020 -0400

Add braces to IF_BUG_ONCE()s introduced in ticket34069.
---
 src/core/or/extendinfo.c | 6 --
 src/feature/client/bridges.c | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/core/or/extendinfo.c b/src/core/or/extendinfo.c
index e4aec634a..bcdb57d5a 100644
--- a/src/core/or/extendinfo.c
+++ b/src/core/or/extendinfo.c
@@ -240,8 +240,9 @@ bool
 extend_info_has_orport(const extend_info_t *ei,
const tor_addr_t *addr, uint16_t port)
 {
-  IF_BUG_ONCE(ei == NULL)
+  IF_BUG_ONCE(ei == NULL) {
 return false;
+  }
 
   for (int i = 0; i < EXTEND_INFO_MAX_ADDRS; ++i) {
 const tor_addr_port_t *ei_ap = >orports[i];
@@ -291,8 +292,9 @@ extend_info_pick_orport(const extend_info_t *ei)
 bool
 extend_info_any_orport_addr_is_internal(const extend_info_t *ei)
 {
-  IF_BUG_ONCE(ei == NULL)
+  IF_BUG_ONCE(ei == NULL) {
 return false;
+  }
 
   for (int i = 0; i < EXTEND_INFO_MAX_ADDRS; ++i) {
 if (! tor_addr_is_unspec(>orports[i].addr) &&
diff --git a/src/feature/client/bridges.c b/src/feature/client/bridges.c
index 3a3d1bb68..caa477649 100644
--- a/src/feature/client/bridges.c
+++ b/src/feature/client/bridges.c
@@ -273,8 +273,9 @@ extend_info_is_a_configured_bridge(const extend_info_t *ei)
 ap1 = >orports[0];
   if (! tor_addr_is_null(>orports[1].addr))
 ap2 = >orports[1];
-  IF_BUG_ONCE(ap1 == NULL)
+  IF_BUG_ONCE(ap1 == NULL) {
 return 0;
+  }
   return addr_is_a_configured_bridge(>addr, ap1->port, digest) &&
 (ap2 == NULL ||
  addr_is_a_configured_bridge(>addr, ap2->port, digest));



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


[tor-commits] [onionperf/develop] Make README.md more useful.

2020-07-02 Thread karsten
commit 54e0bd21227ddb99b64a7d8eb8ca0c0457936d92
Author: Karsten Loesing 
Date:   Tue Jun 30 17:55:18 2020 +0200

Make README.md more useful.

This commit attempts to make README.md the primary, comprehensive
documentation for OnionPerf. There will be more documentation on the
wiki for things that change faster than we want to update a file in
Git or that are too specific for most users. But this README.md is
supposed to cover 90% of the questions that new users would have.

Implements #40001.
---
 README.md | 532 +-
 1 file changed, 181 insertions(+), 351 deletions(-)

diff --git a/README.md b/README.md
index 35d3b7d..9f0faf4 100644
--- a/README.md
+++ b/README.md
@@ -1,446 +1,276 @@
 # OnionPerf
 
-OnionPerf is a utility to track Tor and onion service performance.
-
-OnionPerf uses multiple processes and threads to download random data
-through Tor while tracking the performance of those downloads. The data is
-served and fetched on localhost using two TGen (traffic generator)
-processes, and is transferred through Tor using Tor client processes and
-an ephemeral Tor Onion Service. Tor control information and TGen
-performance statistics are logged to disk, analyzed once per day to
-produce a json stats database and files that can feed into Torperf, and
-can later be used to visualize changes in Tor client performance over time.
-
-For more information, see https://git.torproject.org/onionperf
-
-## Table of contents
-
-* [Quick deployment instructions](#quick-deployment-instructions)
-* [Step-by-step installation 
instructions](#step-by-step-installation-instructions)
-  - [Get OnionPerf](#get-onionperf)
-  - [Install System Dependencies](#install-system-dependencies)
-  - [Install Python modules](#install-python-modules)
-  - [Build Tor](#build-tor)
-  - [Build TGen Traffic Generator](#build-tgen-traffic-generator)
-  - [Build and Install OnionPerf](#build-and-install-onionperf)
-* [Run OnionPerf](#run-onionperf)
-  - [Measure Tor](#measure-tor)
-  - [Analyze and Visualize Results](#analyze-and-visualize-results)
-  - [Troubleshooting](#troubleshooting)
-* [Contribute](#contribute)
-
-## Quick deployment instructions
-
-These are the quick deployment instructions for the current Debian stable 
distribution.
+[TOC]
 
-```
-sudo apt install git cmake make build-essential gcc libigraph0-dev 
libglib2.0-dev python3-dev libxml2-dev python3-lxml python3-networkx 
python3-scipy python3-matplotlib python3-numpy libevent-dev libssl-dev 
python3-stem python3-pandas python3-seaborn python3-setuptools tor
+## Overview
 
-git clone https://github.com/shadow/tgen.git
-cd tgen
-mkdir build
-cd build
-cmake .. -DCMAKE_INSTALL_PREFIX=/home/$USER/.local
-make
-sudo ln -s ~/tgen/build/tgen /usr/bin/tgen
+### What does OnionPerf do?
 
-git clone https://github.com/torproject/onionperf
-cd onionperf
-python3 setup.py build
-python3 setup.py install --user
-```
+OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, Onionperf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
 
-Once the installation finished, you can find the onionperf script in
-`~/.local/bin/`.
+OnionPerf uses multiple processes and threads to download random data through 
Tor while tracking the performance of those downloads. The data is served and 
fetched on localhost using two TGen (traffic generator) processes, and is 
transferred through Tor using Tor client processes and an ephemeral Tor onion 
service. Tor control information and TGen performance statistics are logged to 
disk and analyzed once per day to produce a JSON analysis file that can later 
be used to visualize changes in Tor client performance over time.
 
-## Step-by-step installation instructions
+### What does OnionPerf *not* do?
 
-Here you can find more detailed instructions for the current Debian stable 
distribution.
+OnionPerf does not attempt to simulate complex traffic patterns like a 
web-browsing user or a voice-chatting user. It measures a very specific user 
model: a bulk 5 MiB file download over Tor.
 
-### Get OnionPerf
+OnionPerf does not interfere with how Tor selects paths and builds circuits, 
other than setting configuration values as specified by the user. As a result 
it cannot be used to measure specific relays nor to scan the entire Tor network.
 
-```
-git clone https://git.torproject.org/onionperf.git
-cd onionperf
-```
+## Installation
 
-### Install System Dependencies
+OnionPerf has a couple dependencies in order to perform measurements or 
analyze and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a couple Python packages.
 
-  + **Tor** (>= v0.2.7.3-rc): libevent, openssl
-  + **TGen** (Shadow >= 

[tor-commits] [onionperf/develop] Remove Sphinx documentation.

2020-07-02 Thread karsten
commit 145c9d1c6c281e5d2fd105d492bcc6a43d417565
Author: Karsten Loesing 
Date:   Tue Jun 30 17:59:44 2020 +0200

Remove Sphinx documentation.

Most parts of these files, or at least the important parts, are now
contained in README.md.

Still part of #40001.
---
 onionperf/docs/Makefile  |  20 
 onionperf/docs/conf.py   | 166 --
 onionperf/docs/index.rst |  21 
 onionperf/docs/onionperf.rst | 269 ---
 4 files changed, 476 deletions(-)

diff --git a/onionperf/docs/Makefile b/onionperf/docs/Makefile
deleted file mode 100644
index 91510a1..000
--- a/onionperf/docs/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS=
-SPHINXBUILD   = sphinx-build
-SPHINXPROJ= onionperf
-SOURCEDIR = .
-BUILDDIR  = _build
-
-# Put it first so that "make" without argument is like "make help".
-help:
-   @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
-   @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/onionperf/docs/conf.py b/onionperf/docs/conf.py
deleted file mode 100644
index 6344c90..000
--- a/onionperf/docs/conf.py
+++ /dev/null
@@ -1,166 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Configuration file for the Sphinx documentation builder.
-#
-# This file does only contain a selection of the most common options. For a
-# full list see the documentation:
-# http://www.sphinx-doc.org/en/master/config
-
-# -- Path setup --
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-import os
-import sys
-sys.path.insert(0, os.path.abspath('..'))
-
-
-# -- Project information -
-
-project = 'onionperf'
-copyright = '2019, Ana Custura'
-author = 'Ana Custura'
-
-# The short X.Y version
-version = ''
-# The full version, including alpha/beta/rc tags
-release = ''
-
-
-# -- General configuration ---
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-'sphinx.ext.autodoc',
-'sphinx.ext.intersphinx',
-'sphinx.ext.viewcode',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This pattern also affects html_static_path and html_extra_path .
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-
-# -- Options for HTML output -
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-#
-html_theme = 'alabaster'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Custom sidebar templates, must be a dictionary that maps document names
-# to template names.
-#
-# The default sidebars (for documents that don't match any pattern) are
-# defined by theme itself.  Builtin themes are using these templates by
-# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
-# 'searchbox.html']``.
-#
-# html_sidebars = {}
-
-
-# -- Options for HTMLHelp output 

[tor-commits] [onionperf/develop] Adds links to TGen documentation

2020-07-02 Thread karsten
commit e67947bf7a8879dadbadcd7e141a6e0dc3825f68
Author: Ana Custura 
Date:   Thu Jul 2 10:21:32 2020 +0100

Adds links to TGen documentation
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index b66d6bc..7ffb900 100644
--- a/README.md
+++ b/README.md
@@ -194,7 +194,9 @@ onionperf measure --additional-client-conf="UseBridges 
1\nBridge 72.14.177.231:9
 
 OnionPerf is a relatively simple tool that can be adapted to do more complex 
measurements beyond what can be configured on the command line.
 
-For example, the hard-coded traffic model generated by OnionPerf and executed 
by the TGen processes is to send a small request from client to server and 
receive a relatively large response of 5 MiB of random data back. This model 
can be changed by editing `~/onionperf/onionperf/model.py`, rebuilding, and 
restarting measurements. For specifics, see the TGen documentation.
+For example, the hard-coded traffic model generated by OnionPerf and executed 
by the TGen processes is to send a small request from client to server and 
receive a relatively large response of 5 MiB of random data back. This model 
can be changed by editing `~/onionperf/onionperf/model.py`, rebuilding, and 
restarting measurements. For specifics, see the [TGen
+documentation](https://github.com/shadow/tgen/blob/master/doc/TGen-Overview.md)
+and [TGen traffic model 
examples](https://github.com/shadow/tgen/blob/master/tools/scripts/generate_tgen_config.py).
 
 ### Sharing measurement results
 



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


[tor-commits] [onionperf/develop] Bump version to 0.5.

2020-07-02 Thread karsten
commit adece5d55b8eb7eab03167f5bdd91330ba195b36
Author: Karsten Loesing 
Date:   Thu Jul 2 21:06:31 2020 +0200

Bump version to 0.5.
---
 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index f779267..d15157f 100644
--- a/setup.py
+++ b/setup.py
@@ -6,7 +6,7 @@ with open('requirements.txt') as f:
 install_requires = f.readlines()
 
 setup(name='OnionPerf',
-  version='0.3',
+  version='0.5',
   description='A utility to monitor, measure, analyze, and visualize the 
performance of Tor and Onion Services',
   author='Rob Jansen',
   url='https://github.com/robgjansen/onionperf/',

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


[tor-commits] [onionperf/develop] Minor spelling, adds TOC

2020-07-02 Thread karsten
commit 508d3bccedc56af6559bcb5e367172dffec73a05
Author: Ana Custura 
Date:   Thu Jul 2 10:02:47 2020 +0100

Minor spelling, adds TOC
---
 README.md | 26 ++
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 9f0faf4..b66d6bc 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,30 @@
 # OnionPerf
-
-[TOC]
+ * [Overview](#overview)
++ [What does OnionPerf do?](#what-does-onionperf-do-)
++ [What does OnionPerf *not* do?](#what-does-onionperf--not--do-)
+  * [Installation](#installation)
++ [Tor](#tor)
++ [TGen](#tgen)
++ [OnionPerf](#onionperf-1)
+  * [Measurement](#measurement)
++ [Starting and stopping measurements](#starting-and-stopping-measurements)
++ [Output directories and files](#output-directories-and-files)
++ [Changing Tor configurations](#changing-tor-configurations)
++ [Changing the TGen traffic model](#changing-the-tgen-traffic-model)
++ [Sharing measurement results](#sharing-measurement-results)
++ [Troubleshooting](#troubleshooting)
+  * [Analysis](#analysis)
++ [Analyzing measurement results](#analyzing-measurement-results)
++ [Visualizing measurement results](#visualizing-measurement-results)
++ [Interpreting the PDF output format](#interpreting-the-pdf-output-format)
++ [Interpreting the CSV output format](#interpreting-the-csv-output-format)
+  * [Contributing](#contributing)
 
 ## Overview
 
 ### What does OnionPerf do?
 
-OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, Onionperf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
+OnionPerf measures performance of bulk file downloads over Tor. Together with 
its predecessor, Torperf, OnionPerf has been used to measure long-term 
performance trends in the Tor network since 2009. It is also being used to 
perform short-term performance experiments to compare different Tor 
configurations or implementations.
 
 OnionPerf uses multiple processes and threads to download random data through 
Tor while tracking the performance of those downloads. The data is served and 
fetched on localhost using two TGen (traffic generator) processes, and is 
transferred through Tor using Tor client processes and an ephemeral Tor onion 
service. Tor control information and TGen performance statistics are logged to 
disk and analyzed once per day to produce a JSON analysis file that can later 
be used to visualize changes in Tor client performance over time.
 
@@ -180,7 +198,7 @@ For example, the hard-coded traffic model generated by 
OnionPerf and executed by
 
 ### Sharing measurement results
 
-Measurement results can be further analyzed and visualized on the measuring 
host. But in many cases it's more conventient to do analysis and visualization 
on another host, also to compare measurements from different hosts to each 
other.
+Measurement results can be further analyzed and visualized on the measuring 
host. But in many cases it's more convenient to do analysis and visualization 
on another host, also to compare measurements from different hosts to each 
other.
 
 There are at least two common ways of sharing measurement results:
 



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


[tor-commits] [onionperf/develop] Merge branch 'task-40001' into develop

2020-07-02 Thread karsten
commit 454c045013ea2b6f669819fe702a0f794cc59927
Merge: 83e4b52 e305128
Author: Karsten Loesing 
Date:   Thu Jul 2 21:02:01 2020 +0200

Merge branch 'task-40001' into develop

 README.md| 558 ---
 onionperf/docs/Makefile  |  20 --
 onionperf/docs/conf.py   | 166 -
 onionperf/docs/index.rst |  21 --
 onionperf/docs/onionperf.rst | 269 -
 5 files changed, 208 insertions(+), 826 deletions(-)



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


[tor-commits] [onionperf/develop] Rewrite a sentence, add a paragraph.

2020-07-02 Thread karsten
commit b677afc53c3885085c83c12b2b8f6967021f5033
Author: Karsten Loesing 
Date:   Thu Jul 2 16:19:08 2020 +0200

Rewrite a sentence, add a paragraph.
---
 README.md | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1f58f0d..46abd01 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ The following description was written with a Debian system in 
mind but should be
 
 ### Tor
 
-OnionPerf relies on the `tor` binary to start a Tor client process on the 
client side and a server side process to host onion services.
+OnionPerf relies on the `tor` binary to start a Tor process on the client side 
to make client requests and another Tor process on the server side to host 
onion services.
 
 The easiest way to satisfy this dependency is to install the `tor` package, 
which puts the `tor` binary into the `PATH` where OnionPerf will find it. 
Optionally, systemd can be instructed to make sure that `tor` is never started 
as a service:
 
@@ -288,6 +288,12 @@ The CSV output file contains the same data that is 
visualized in the PDF file. I
 - `time_to_first_byte` is the time in seconds (with microsecond precision) to 
download the first byte.
 - `time_to_last_byte` is the time in seconds (with microsecond precision) to 
download the last byte.
 
+### Visualizations on Tor Metrics
+
+The analysis and visualization steps above can all be done by using the 
OnionPerf tool. In addition to that it's possible to visualize OnionPerf 
analysis files using other tools.
+
+For example, the [Tor Metrics 
website](https://metrics.torproject.org/torperf.html) contains various graphs 
based OnionPerf data.
+
 ## Contributing
 
 The OnionPerf code is developed at 
https://gitlab.torproject.org/tpo/metrics/onionperf.



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


[tor-commits] [onionperf/develop] Update table of contents.

2020-07-02 Thread karsten
commit e30512870f0cccfa29f54b778025fa4d71417a19
Author: Karsten Loesing 
Date:   Thu Jul 2 20:58:41 2020 +0200

Update table of contents.

Updated using: https://ecotrust-canada.github.io/markdown-toc/
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 46abd01..77384c6 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
 # OnionPerf
- * [Overview](#overview)
+
+  * [Overview](#overview)
 + [What does OnionPerf do?](#what-does-onionperf-do-)
 + [What does OnionPerf *not* do?](#what-does-onionperf--not--do-)
   * [Installation](#installation)
@@ -18,6 +19,7 @@
 + [Visualizing measurement results](#visualizing-measurement-results)
 + [Interpreting the PDF output format](#interpreting-the-pdf-output-format)
 + [Interpreting the CSV output format](#interpreting-the-csv-output-format)
++ [Visualizations on Tor Metrics](#visualizations-on-tor-metrics)
   * [Contributing](#contributing)
 
 ## Overview



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


[tor-commits] [onionperf/develop] Rewrites/clarifies some text

2020-07-02 Thread karsten
commit 3c129c371a10a69a1789c1af4ac8495a0a783203
Author: Ana Custura 
Date:   Thu Jul 2 10:50:29 2020 +0100

Rewrites/clarifies some text
---
 README.md | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 7ffb900..1f58f0d 100644
--- a/README.md
+++ b/README.md
@@ -36,15 +36,15 @@ OnionPerf does not interfere with how Tor selects paths and 
builds circuits, oth
 
 ## Installation
 
-OnionPerf has a couple dependencies in order to perform measurements or 
analyze and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a couple Python packages.
+OnionPerf has several dependencies in order to perform measurements or analyze 
and visualize measurement results. These dependencies include Tor, TGen 
(traffic generator), and a few Python packages.
 
 The following description was written with a Debian system in mind but should 
be transferable to other Linux distributions and possibly even other operating 
systems.
 
 ### Tor
 
-OnionPerf relies on the `tor` binary to start a Tor client on the client side 
and another one on the server side to host onion services.
+OnionPerf relies on the `tor` binary to start a Tor client process on the 
client side and a server side process to host onion services.
 
-The easiest way is to install the `tor` package, which puts the `tor` binary 
into the `PATH` where OnionPerf will find it. Optionally, systemd can be 
instructed to make sure that `tor` is never started as a service:
+The easiest way to satisfy this dependency is to install the `tor` package, 
which puts the `tor` binary into the `PATH` where OnionPerf will find it. 
Optionally, systemd can be instructed to make sure that `tor` is never started 
as a service:
 
 ```shell
 sudo apt install tor
@@ -88,7 +88,7 @@ The TGen binary will be contained in `~/tgen/build/tgen`, 
which is also the path
 
 OnionPerf is written in Python 3. The following instructions assume that a 
Python virtual environment is being used, even though installation is also 
possible without that.
 
-The virtual environment is being created, activated, and tested using:
+The virtual environment is created, activated, and tested using:
 
 ```shell
 sudo apt install python3-venv
@@ -100,14 +100,14 @@ which python3
 
 The last command should output something like `~/venv/bin/python3` as the path 
to the `python3` binary used in the virtual environment.
 
-In the next step, the OnionPerf repository is being cloned and requirements 
are being installed:
+The next step is to clone the OnionPerf repository and install its 
requirements:
 
 ```shell
 git clone https://git.torproject.org/onionperf.git
 pip3 install --no-cache -r onionperf/requirements.txt
 ```
 
-The next step after that is to install OnionPerf and print out the usage 
information to see if the installation was successful:
+The final step is to install OnionPerf and print out the usage information to 
see if the installation was successful:
 
 ```shell
 cd onionperf/
@@ -122,7 +122,7 @@ The virtual environment is deactivated with the following 
command:
 deactivate
 ```
 
-However, in order to perform measurements or doing analyses, the virtual 
environment needs to be activated first. This will ensure all the paths are 
found.
+However, in order to perform measurements or analyses, the virtual environment 
needs to be activated first. This will ensure all the paths are found.
 
 
 ## Measurement
@@ -133,7 +133,7 @@ Ideally, OnionPerf is run detached from the terminal 
session using tmux, systemd
 
 ### Starting and stopping measurements
 
-The most trivial configuration is to measure onion services only. In that 
case, OnionPerf is taking care of all configurations, and there are no firewall 
rules or port forwards to take care of.
+The most trivial configuration is to measure onion services only. In that 
case, OnionPerf runs without needing any additional configuration. For direct 
measurements via exit nodes, firewall rules or port forwarding may be required 
to allow inbound connections to the TGen server.
 
 Starting these measurements is as simple as:
 



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


[tor-commits] [translation/policies-code_of_conducttxtpot] https://gitweb.torproject.org/translation.git/commit/?h=policies-code_of_conducttxtpot

2020-07-02 Thread translation
commit b5664c2b73642d0558a79abad33a70011e9340d2
Author: Translation commit bot 
Date:   Thu Jul 2 17:45:50 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=policies-code_of_conducttxtpot
---
 code_of_conduct+fr.po | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/code_of_conduct+fr.po b/code_of_conduct+fr.po
index 9e9cdc3cac..0815998fe9 100644
--- a/code_of_conduct+fr.po
+++ b/code_of_conduct+fr.po
@@ -6,8 +6,8 @@
 # 
 # Translators:
 # David Georges, 2019
-# robin Amielh , 2019
-# AO , 2019
+# a00fce65fdff2427915d78cd7ee0a4f6_c16c729 
, 2019
+# AO , 2020
 # 
 #, fuzzy
 msgid ""
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: Code of conduct of the Tor Project\n"
 "POT-Creation-Date: 2019-08-02 12:00+\n"
 "PO-Revision-Date: 2019-08-27 18:54+\n"
-"Last-Translator: AO , 2019\n"
+"Last-Translator: AO , 2020\n"
 "Language-Team: French (https://www.transifex.com/otf/teams/1519/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -56,7 +56,7 @@ msgid ""
 "community. Tor is a place where people should feel safe to engage, share "
 "their point of view, and participate."
 msgstr ""
-"Le Projet Tor est déterminé à promouvoir un environnement et une 
communauté "
+"Le Projet Tor est déterminé à promouvoir un environnement et une 
communauté "
 "qui favorisent l’intégration. Tor est un lieu où les gens devraient avoir 
le"
 " sentiment de pouvoir s’impliquer, partager leur point de vue et participer 
"
 "en toute sécurité."

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


[tor-commits] [translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot

2020-07-02 Thread translation
commit e6f13b569253cbfee05b721e3c2a2d61a04f077b
Author: Translation commit bot 
Date:   Thu Jul 2 17:45:18 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
---
 contents+fr.po | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/contents+fr.po b/contents+fr.po
index 0f12016738..45eb240964 100644
--- a/contents+fr.po
+++ b/contents+fr.po
@@ -7,8 +7,8 @@
 # Emma Peel, 2019
 # a00fce65fdff2427915d78cd7ee0a4f6_c16c729 
, 2020
 # David Georges, 2020
-# AO , 2020
 # A R , 2020
+# AO , 2020
 # 
 msgid ""
 msgstr ""
@@ -16,7 +16,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-12-11 12:15+CET\n"
 "PO-Revision-Date: 2019-12-11 10:50+\n"
-"Last-Translator: A R , 2020\n"
+"Last-Translator: AO , 2020\n"
 "Language-Team: French (https://www.transifex.com/otf/teams/1519/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1884,7 +1884,7 @@ msgid ""
 "community. Tor is a place where people should feel safe to engage, share "
 "their point of view, and participate."
 msgstr ""
-"Le Projet Tor est déterminé à promouvoir un environnement et une 
communauté "
+"Le Projet Tor est déterminé à promouvoir un environnement et une 
communauté "
 "qui favorisent l’intégration. Tor est un lieu où les gens devraient avoir 
le"
 " sentiment de pouvoir s’impliquer, partager leur point de vue et participer 
"
 "en toute sécurité."
@@ -10712,7 +10712,7 @@ msgstr "Si Tor est utilisé ou non."
 
 #: templates/homepage.html:4 templates/meta.html:7
 msgid "Tor Project"
-msgstr "Le Projet Tor"
+msgstr "Le Projet Tor"
 
 #: templates/localization.html:27
 msgid "Can you help us improve our translations?"

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


[tor-commits] [translation/bridgedb_completed] https://gitweb.torproject.org/translation.git/commit/?h=bridgedb_completed

2020-07-02 Thread translation
commit 5175314a94ac111dfb89fcaef03e214acd42a0ef
Author: Translation commit bot 
Date:   Thu Jul 2 17:45:11 2020 +

https://gitweb.torproject.org/translation.git/commit/?h=bridgedb_completed
---
 pt_PT/LC_MESSAGES/bridgedb.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pt_PT/LC_MESSAGES/bridgedb.po b/pt_PT/LC_MESSAGES/bridgedb.po
index 1fd0798c71..147cd9c424 100644
--- a/pt_PT/LC_MESSAGES/bridgedb.po
+++ b/pt_PT/LC_MESSAGES/bridgedb.po
@@ -16,8 +16,8 @@ msgstr ""
 "Project-Id-Version: Tor Project\n"
 "Report-Msgid-Bugs-To: 
'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n"
 "POT-Creation-Date: 2020-05-14 14:21-0700\n"
-"PO-Revision-Date: 2020-05-24 11:43+\n"
-"Last-Translator: Hugo Costa \n"
+"PO-Revision-Date: 2020-07-02 17:23+\n"
+"Last-Translator: Manuela Silva \n"
 "Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -391,7 +391,7 @@ msgid ""
 "Add these bridges to your Tor Browser by opening your browser\n"
 "preferences, clicking on \"Tor\", and then adding them to the \"Provide a\n"
 "bridge\" field."
-msgstr ""
+msgstr "Adicione estas pontes ao seu Tor Browser, abrindo as preferências do 
\nseu navegador, clique em \"Tor\", e depois adicione-as ao campo \"Fornecer 
uma ponte\"."
 
 #: bridgedb/strings.py:173
 msgid "(Request unobfuscated Tor bridges.)"

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


[tor-commits] [translation/tba-torbrowserstringsdtd] https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd

2020-07-02 Thread translation
commit be5fe2e60cc739a940cec3f8d508365e762f89b7
Author: Translation commit bot 
Date:   Thu Jul 2 21:16:48 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd
---
 nl/torbrowser_strings.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nl/torbrowser_strings.dtd b/nl/torbrowser_strings.dtd
index 8d73464d31..083a034295 100644
--- a/nl/torbrowser_strings.dtd
+++ b/nl/torbrowser_strings.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@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tba-torbrowserstringsdtd] https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd

2020-07-02 Thread translation
commit 2698ac7b89d334a64cc5741396f3332ccc8bc17f
Author: Translation commit bot 
Date:   Fri Jul 3 02:16:49 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd
---
 pt-BR/torbrowser_strings.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pt-BR/torbrowser_strings.dtd b/pt-BR/torbrowser_strings.dtd
index 06ed444307..9057e56f11 100644
--- a/pt-BR/torbrowser_strings.dtd
+++ b/pt-BR/torbrowser_strings.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@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tba-torbrowserstringsdtd] https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd

2020-07-02 Thread translation
commit 4ef7706ce368e6c8a146885fcaabf7272b358f2d
Author: Translation commit bot 
Date:   Fri Jul 3 03:47:12 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd
---
 ach/torbrowser_strings.dtd   | 7 ---
 af/torbrowser_strings.dtd| 7 ---
 ar/torbrowser_strings.dtd| 7 ---
 ast/torbrowser_strings.dtd   | 7 ---
 az/torbrowser_strings.dtd| 7 ---
 be/torbrowser_strings.dtd| 7 ---
 bg/torbrowser_strings.dtd| 7 ---
 bn-BD/torbrowser_strings.dtd | 7 ---
 br/torbrowser_strings.dtd| 7 ---
 bs/torbrowser_strings.dtd| 7 ---
 ca/torbrowser_strings.dtd| 7 ---
 cs/torbrowser_strings.dtd| 7 ---
 cy/torbrowser_strings.dtd| 7 ---
 da/torbrowser_strings.dtd| 7 ---
 de/torbrowser_strings.dtd| 7 ---
 el/torbrowser_strings.dtd| 7 ---
 en-GB/torbrowser_strings.dtd | 7 ---
 en-US/torbrowser_strings.dtd | 7 ---
 en/torbrowser_strings.dtd| 7 ---
 eo/torbrowser_strings.dtd| 7 ---
 es-AR/torbrowser_strings.dtd | 7 ---
 es-ES/torbrowser_strings.dtd | 7 ---
 es-MX/torbrowser_strings.dtd | 7 ---
 et/torbrowser_strings.dtd| 7 ---
 eu/torbrowser_strings.dtd| 7 ---
 fa/torbrowser_strings.dtd| 7 ---
 fi/torbrowser_strings.dtd| 7 ---
 fr/torbrowser_strings.dtd| 7 ---
 fy-NL/torbrowser_strings.dtd | 7 ---
 ga-IE/torbrowser_strings.dtd | 7 ---
 gd/torbrowser_strings.dtd| 7 ---
 gl/torbrowser_strings.dtd| 7 ---
 gu-IN/torbrowser_strings.dtd | 7 ---
 he/torbrowser_strings.dtd| 7 ---
 hi-IN/torbrowser_strings.dtd | 7 ---
 hr/torbrowser_strings.dtd| 7 ---
 hu/torbrowser_strings.dtd| 7 ---
 hy-AM/torbrowser_strings.dtd | 7 ---
 ia/torbrowser_strings.dtd| 7 ---
 id/torbrowser_strings.dtd| 7 ---
 is/torbrowser_strings.dtd| 7 ---
 it/torbrowser_strings.dtd| 7 ---
 ja/torbrowser_strings.dtd| 7 ---
 ka/torbrowser_strings.dtd| 7 ---
 kab/torbrowser_strings.dtd   | 7 ---
 kk/torbrowser_strings.dtd| 7 ---
 km/torbrowser_strings.dtd| 7 ---
 kn/torbrowser_strings.dtd| 7 ---
 ko/torbrowser_strings.dtd| 7 ---
 lt/torbrowser_strings.dtd| 7 ---
 lv/torbrowser_strings.dtd| 7 ---
 mk/torbrowser_strings.dtd| 7 ---
 ml/torbrowser_strings.dtd| 7 ---
 mr/torbrowser_strings.dtd| 7 ---
 ms/torbrowser_strings.dtd| 7 ---
 my/torbrowser_strings.dtd| 7 ---
 nb-NO/torbrowser_strings.dtd | 7 ---
 ne/torbrowser_strings.dtd| 7 ---
 nl-BE/torbrowser_strings.dtd | 7 ---
 nl/torbrowser_strings.dtd| 7 ---
 nn-NO/torbrowser_strings.dtd | 7 ---
 oc/torbrowser_strings.dtd| 7 ---
 or/torbrowser_strings.dtd| 7 ---
 pa-IN/torbrowser_strings.dtd | 7 ---
 pl/torbrowser_strings.dtd| 7 ---
 pt-BR/torbrowser_strings.dtd | 7 ---
 pt-PT/torbrowser_strings.dtd | 7 ---
 ro/torbrowser_strings.dtd| 7 ---
 ru/torbrowser_strings.dtd| 7 ---
 si/torbrowser_strings.dtd| 7 ---
 sk/torbrowser_strings.dtd| 7 ---
 sl/torbrowser_strings.dtd| 7 ---
 son/torbrowser_strings.dtd   | 7 ---
 sq/torbrowser_strings.dtd| 7 ---
 sr/torbrowser_strings.dtd| 7 ---
 sv-SE/torbrowser_strings.dtd | 7 ---
 sw/torbrowser_strings.dtd| 7 ---
 ta/torbrowser_strings.dtd| 7 ---
 te/torbrowser_strings.dtd| 7 ---
 th/torbrowser_strings.dtd| 7 ---
 tr/torbrowser_strings.dtd| 7 ---
 uk/torbrowser_strings.dtd| 7 ---
 ur/torbrowser_strings.dtd| 7 ---
 uz/torbrowser_strings.dtd| 7 ---
 vi/torbrowser_strings.dtd| 7 ---
 zh-CN/torbrowser_strings.dtd | 7 ---
 zh-HK/torbrowser_strings.dtd | 7 ---
 zh-TW/torbrowser_strings.dtd | 7 ---
 88 files changed, 616 deletions(-)

diff --git a/ach/torbrowser_strings.dtd b/ach/torbrowser_strings.dtd
index d4009b272c..dd3f0cc06f 100644
--- a/ach/torbrowser_strings.dtd
+++ b/ach/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/af/torbrowser_strings.dtd b/af/torbrowser_strings.dtd
index 6ee9f2a2c4..e094a6f34f 100644
--- a/af/torbrowser_strings.dtd
+++ b/af/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/ar/torbrowser_strings.dtd b/ar/torbrowser_strings.dtd
index 866ebbd1d7..ddec85229c 100644
--- a/ar/torbrowser_strings.dtd
+++ b/ar/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/ast/torbrowser_strings.dtd b/ast/torbrowser_strings.dtd
index dadc3fc654..6216c25b88 100644
--- a/ast/torbrowser_strings.dtd
+++ b/ast/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/az/torbrowser_strings.dtd b/az/torbrowser_strings.dtd
index a247a2b74c..af2d97cc56 100644
--- 

[tor-commits] [translation/tba-torbrowserstringsdtd_completed] https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd_completed

2020-07-02 Thread translation
commit 805da0593fdfd3cd168206ebfd8b20dfe6eb1bff
Author: Translation commit bot 
Date:   Fri Jul 3 03:47:24 2020 +


https://gitweb.torproject.org/translation.git/commit/?h=tba-torbrowserstringsdtd_completed
---
 ar/torbrowser_strings.dtd| 7 ---
 bn-BD/torbrowser_strings.dtd | 7 ---
 ca/torbrowser_strings.dtd| 7 ---
 cs/torbrowser_strings.dtd| 7 ---
 da/torbrowser_strings.dtd| 7 ---
 de/torbrowser_strings.dtd| 7 ---
 el/torbrowser_strings.dtd| 7 ---
 en-GB/torbrowser_strings.dtd | 7 ---
 en-US/torbrowser_strings.dtd | 7 ---
 en/torbrowser_strings.dtd| 7 ---
 es-AR/torbrowser_strings.dtd | 7 ---
 es-ES/torbrowser_strings.dtd | 7 ---
 fa/torbrowser_strings.dtd| 7 ---
 fr/torbrowser_strings.dtd| 7 ---
 ga-IE/torbrowser_strings.dtd | 4 ++--
 he/torbrowser_strings.dtd| 7 ---
 hr/torbrowser_strings.dtd| 7 ---
 hu/torbrowser_strings.dtd| 7 ---
 id/torbrowser_strings.dtd| 7 ---
 is/torbrowser_strings.dtd| 7 ---
 it/torbrowser_strings.dtd| 7 ---
 ja/torbrowser_strings.dtd| 7 ---
 ka/torbrowser_strings.dtd| 7 ---
 ko/torbrowser_strings.dtd| 7 ---
 lt/torbrowser_strings.dtd| 7 ---
 mk/torbrowser_strings.dtd| 7 ---
 ms/torbrowser_strings.dtd| 7 ---
 nb-NO/torbrowser_strings.dtd | 7 ---
 nl/torbrowser_strings.dtd| 7 ---
 pl/torbrowser_strings.dtd| 7 ---
 pt-BR/torbrowser_strings.dtd | 7 ---
 pt-PT/torbrowser_strings.dtd | 7 ---
 ro/torbrowser_strings.dtd| 7 ---
 ru/torbrowser_strings.dtd| 7 ---
 sk/torbrowser_strings.dtd| 7 ---
 sv-SE/torbrowser_strings.dtd | 7 ---
 th/torbrowser_strings.dtd| 7 ---
 tr/torbrowser_strings.dtd| 7 ---
 uk/torbrowser_strings.dtd| 7 ---
 zh-CN/torbrowser_strings.dtd | 7 ---
 zh-TW/torbrowser_strings.dtd | 7 ---
 41 files changed, 2 insertions(+), 282 deletions(-)

diff --git a/ar/torbrowser_strings.dtd b/ar/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/ar/torbrowser_strings.dtd
+++ b/ar/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/bn-BD/torbrowser_strings.dtd b/bn-BD/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/bn-BD/torbrowser_strings.dtd
+++ b/bn-BD/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/ca/torbrowser_strings.dtd b/ca/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/ca/torbrowser_strings.dtd
+++ b/ca/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/cs/torbrowser_strings.dtd b/cs/torbrowser_strings.dtd
index 3ee7ffe8da..ac3c4e9012 100644
--- a/cs/torbrowser_strings.dtd
+++ b/cs/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/da/torbrowser_strings.dtd b/da/torbrowser_strings.dtd
index 2744ec6219..5a81aa2a08 100644
--- a/da/torbrowser_strings.dtd
+++ b/da/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/de/torbrowser_strings.dtd b/de/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/de/torbrowser_strings.dtd
+++ b/de/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/el/torbrowser_strings.dtd b/el/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/el/torbrowser_strings.dtd
+++ b/el/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/en-GB/torbrowser_strings.dtd b/en-GB/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/en-GB/torbrowser_strings.dtd
+++ b/en-GB/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/en-US/torbrowser_strings.dtd b/en-US/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/en-US/torbrowser_strings.dtd
+++ b/en-US/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/en/torbrowser_strings.dtd b/en/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/en/torbrowser_strings.dtd
+++ b/en/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/es-AR/torbrowser_strings.dtd b/es-AR/torbrowser_strings.dtd
index debc6d7ade..529b7e4423 100644
--- a/es-AR/torbrowser_strings.dtd
+++ b/es-AR/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/es-ES/torbrowser_strings.dtd b/es-ES/torbrowser_strings.dtd
index 388ac0a4df..8dc6f8c93a 100644
--- a/es-ES/torbrowser_strings.dtd
+++ b/es-ES/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 
@@ -54,7 +48,6 @@
 
 
 
-
 
 
 
diff --git a/fa/torbrowser_strings.dtd b/fa/torbrowser_strings.dtd
index 55feffe398..918508ce78 100644
--- a/fa/torbrowser_strings.dtd
+++ b/fa/torbrowser_strings.dtd
@@ -1,9 +1,3 @@
-
-
-
-
 
 
 

[tor-commits] [onionperf/develop] Write generated torrc files to disk.

2020-07-02 Thread karsten
commit 30949a4218cf06c8e73927ec0db06dfa6d662294
Author: Karsten Loesing 
Date:   Wed Jul 1 16:50:57 2020 +0200

Write generated torrc files to disk.

Implements #40002.
---
 onionperf/measurement.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/onionperf/measurement.py b/onionperf/measurement.py
index 4a58bc4..1540bac 100644
--- a/onionperf/measurement.py
+++ b/onionperf/measurement.py
@@ -439,6 +439,9 @@ WarnUnsafeSocks 0\nSafeLogging 0\nMaxCircuitDirtiness 60 
seconds\nDataDirectory
 
 if not os.path.exists(tor_datadir): os.makedirs(tor_datadir)
 tor_config = 
self.create_tor_config(control_port,socks_port,tor_datadir,name)
+tor_confpath = "{0}/torrc".format(tor_datadir)
+with open(tor_confpath, 'wt') as f:
+f.write(tor_config)
 
 tor_logpath = "{0}/onionperf.tor.log".format(tor_datadir)
 tor_writable = util.FileWritable(tor_logpath)



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


[tor-commits] [onionperf/develop] Merge branch 'task-40002' into develop

2020-07-02 Thread karsten
commit 0a9c6aca86f44660e4895c643484c0c16fc9c705
Merge: 3e1d149 30949a4
Author: Karsten Loesing 
Date:   Thu Jul 2 10:22:24 2020 +0200

Merge branch 'task-40002' into develop

 onionperf/measurement.py | 3 +++
 1 file changed, 3 insertions(+)

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


[tor-commits] [onionperf/develop] Merge branch 'task-40004' into develop

2020-07-02 Thread karsten
commit 83e4b52575576806f1879f3912f4a913c3e06747
Merge: 0a9c6ac fc6e970
Author: Karsten Loesing 
Date:   Thu Jul 2 10:43:05 2020 +0200

Merge branch 'task-40004' into develop

 onionperf/visualization.py | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

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


[tor-commits] [onionperf/develop] Always include error_code column in CSV output.

2020-07-02 Thread karsten
commit fc6e9702d3012edca463b96fbbe218bbff70d6c7
Author: Karsten Loesing 
Date:   Wed Jul 1 15:20:27 2020 +0200

Always include error_code column in CSV output.

We should include an error_code column in the CSV output, regardless
of whether data contains measurements with an error code or not.
Everything else is just too confusing to whoever processes these
files.

Fixes #40004.
---
 onionperf/visualization.py | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/onionperf/visualization.py b/onionperf/visualization.py
index 2107d5a..0a2a9d9 100644
--- a/onionperf/visualization.py
+++ b/onionperf/visualization.py
@@ -58,7 +58,8 @@ class TGenVisualization(Visualization):
 tgen_transfers = analysis.get_tgen_transfers(client)
 for transfer_id, transfer_data in tgen_transfers.items():
 transfer = {"transfer_id": transfer_id, "label": label,
-"filesize_bytes": 
transfer_data["filesize_bytes"]}
+"filesize_bytes": 
transfer_data["filesize_bytes"],
+"error_code": None}
 transfer["server"] = "onion" if ".onion:" in 
transfer_data["endpoint_remote"] else "public"
 if "elapsed_seconds" in transfer_data:
 s = transfer_data["elapsed_seconds"]
@@ -147,7 +148,7 @@ class TGenVisualization(Visualization):
 
 def __plot_errors_count(self):
 for server in self.data["server"].unique():
-if "error_code" in self.data.columns and 
self.data[self.data["server"] == server]["error_code"].count() > 0:
+if self.data[self.data["server"] == server]["error_code"].count() 
> 0:
 self.__draw_countplot(x="error_code", hue="label", 
hue_name="Data set",
   data=self.data[self.data["server"] == 
server],
   xlabel="Error code", ylabel="Downloads 
failed (#)",
@@ -155,7 +156,7 @@ class TGenVisualization(Visualization):
 
 def __plot_errors_time(self):
 for server in self.data["server"].unique():
-if "error_code" in self.data.columns and 
self.data[self.data["server"] == server]["error_code"].count() > 0:
+if self.data[self.data["server"] == server]["error_code"].count() 
> 0:
 self.__draw_stripplot(x="start", y="error_code", hue="label", 
hue_name="Data set",
  data=self.data[self.data["server"] == 
server],
  xlabel="Download start time", 
ylabel="Error code",



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


<    1   2