mirror repository of the tor core protocol in case of issues
Go to file
George Kadianakis 248cbc2d22 statistics: Properly count all rendezvous cells (avoid undercounting).
tl;dr We were not counting cells flying from the client to the service, but we
were counting cells flying from the service to the client.

When a rendezvous cell arrives from the client to the RP, the RP forwards it to
the service.

For this to happen, the cell first passes through command_process_relay_cell()
which normally does the statistics counting. However because the `rend_circ`
circuit was not flagged with `circuit_carries_hs_traffic_stats` in
rend_mid_rendezvous(), the cell is not counted there.

Then the cell goes to circuit_receive_relay_cell() which has a special code
block based on `rend_splice` specifically for rendezvous cells, and the cell
gets directly passed to `rend_circ` via a direct call to
circuit_receive_relay_cell(). The cell never passes through
command_process_relay_cell() ever again and hence is never counted by our
rephist module.

The fix here is to flag the `rend_circ` circuit with
`circuit_carries_hs_traffic_stats` so that the cell is counted as soon as it
hits command_process_relay_cell().

Furthermore we avoid double-counting cells since the special code block of
circuit_receive_relay_cell() makes us count rendezvous cells only as they enter
the RP and not as they exit it.

Fixes #40117.
2020-09-07 13:29:44 +03:00
changes statistics: Properly count all rendezvous cells (avoid undercounting). 2020-09-07 13:29:44 +03:00
contrib Bump to 0.3.5.11-dev 2020-07-09 13:12:45 -04:00
doc Merge remote-tracking branch 'tor-github/pr/1020' into maint-0.3.5 2019-08-12 09:49:53 +10:00
m4 Replace obsolete macros with modern equivalents 2016-12-23 10:34:11 -05:00
scripts CI: Turn on stem with 044 and later. 2020-08-12 20:13:18 -04:00
src statistics: Properly count all rendezvous cells (avoid undercounting). 2020-09-07 13:29:44 +03:00
.appveyor.yml CI: Remove VS2015 AppVeyor build. 2020-08-12 14:05:21 +03:00
.editorconfig Add .editorconfig to follow coding standards style 2018-06-17 19:24:40 -04:00
.gitignore Try @warning_flags to avoid bloating verbose make logs 2018-12-21 10:00:23 -05:00
.gitlab-ci.yml Improve comments in .gitlab-ci.yml 2020-08-12 20:20:58 -04:00
.gitmodules Update the .gitmodules to refer to project-level tor-rust-dependencies 2018-02-21 11:53:04 -05:00
.travis.yml Revert "Travis: temporarily fix stem version to d1174a83c2dcb7b8" 2020-06-03 14:48:05 -04:00
acinclude.m4 Bump copyright date to 2019. 2019-01-16 12:32:32 -05:00
autogen.sh Report errors when updating configuration files 2016-12-23 10:35:26 -05:00
ChangeLog Copy changelog to maint-0.3.5 so master will get it. 2018-11-08 09:02:03 -05:00
CODE_OF_CONDUCT Add CODE_OF_CONDUCT file 2018-07-05 11:22:33 +03:00
config.rust.in Make the rust tests link. 2018-07-31 19:46:00 -04:00
configure.ac Bump to 0.3.5.11-dev 2020-07-09 13:12:45 -04:00
CONTRIBUTING improve a URL 2018-05-11 18:00:30 -04:00
Doxyfile.in Fix Doxyfile for 0.3.5 source tree moves 2018-11-14 07:45:55 -05:00
INSTALL Remove old instructions from INSTALL 2018-07-03 16:34:52 +03:00
LICENSE Bump copyright date to 2019. 2019-01-16 12:32:32 -05:00
Makefile.am Try disabling "make all" when checking docs. 2020-08-12 12:28:44 -04:00
Makefile.nmake Clean up the MVSC nmake files so they work again. 2014-09-09 10:27:05 -04:00
README doc: Put the release timeline link in README 2017-11-08 10:44:00 -05:00
ReleaseNotes forward-port 0.3.4.9 changelog and releasenotes 2018-11-02 11:28:57 -04:00
warning_flags.in Try @warning_flags to avoid bloating verbose make logs 2018-12-21 10:00:23 -05:00

Tor protects your privacy on the internet by hiding the connection
between your Internet address and the services you use. We believe Tor
is reasonably secure, but please ensure you read the instructions and
configure it properly.

To build Tor from source:
        ./configure && make && make install

To build Tor from a just-cloned git repository:
        sh autogen.sh && ./configure && make && make install

Home page:
        https://www.torproject.org/

Download new versions:
        https://www.torproject.org/download/download.html

Documentation, including links to installation and setup instructions:
        https://www.torproject.org/docs/documentation.html

Making applications work with Tor:
        https://wiki.torproject.org/projects/tor/wiki/doc/TorifyHOWTO

Frequently Asked Questions:
        https://www.torproject.org/docs/faq.html


To get started working on Tor development:
        See the doc/HACKING directory.

Release timeline:
         https://trac.torproject.org/projects/tor/wiki/org/teams/NetworkTeam/CoreTorReleases