mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
3a247ca92a06c864a2cb634fbe2bc23cf48fb977
In 0.3.2.1-alpha, we've added this function in order to have a way to notify other subsystems that the consensus just changed. The old consensus and the new one are passed to it. Before this patch, this was done _before_ the new consensus was set globally (thus NOT accessible by getting the latest consensus). The scheduler notification was assuming that it was set and select_scheduler() is looking at the latest consensus to get the parameters it might needs. This was very wrong because at that point it is still the old consensus set globally. With this commit, notify_networkstatus_changed() has been moved _after_ the new consensus is set globally. The main obvious reasons is to fix the bug described above and in #24975. The other reason is that this notify function doesn't return anything which could be allowing the possibility of refusing to set the new consensus on error. In other words, the new consensus is set right after the notification whatever happens. It does no harm or change in behavior to set the new consensus first and then notify the subsystems. The two functions currently used are for the control port using the old and new consensus and sending the diff. The second is the scheduler that needs the new consensus to be set globally before being called. Of course, the function has been documented accordinly to clearly state it is done _after_ the new consensus is set. Fixes #24975 Signed-off-by: David Goulet <dgoulet@torproject.org>
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
Description
Languages
C
94.4%
Python
1.5%
C++
1.1%
Shell
1.1%
M4
0.9%
Other
0.8%