mirror repository of the tor core protocol in case of issues
Go to file
Nick Mathewson e106812a77 Change smartlist_choose_node_by_bandwidth to avoid double
This should make our preferred solution to #6538 easier to
implement, avoid a bunch of potential nastiness with excessive
int-vs-double math, and generally make the code there a little less
scary.

"But wait!" you say.  "Is it really safe to do this? Won't the
results come out differently?"

Yes, but not much.  We now round every weighted bandwidth to the
nearest byte before computing on it.  This will make every node that
had a fractional part of its weighted bandwidth before either
slighty more likely or slightly less likely.  Further, the rand_bw
value was only ever set with integer precision, so it can't
accurately sample routers with tiny fractional bandwidth values
anyway.  Finally, doing repeated double-vs-uint64 comparisons is
just plain sad; it will involve an implicit cast to double, which is
never a fun thing.
2012-08-09 12:21:37 -04:00
changes Change smartlist_choose_node_by_bandwidth to avoid double 2012-08-09 12:21:37 -04:00
contrib bump version to 0.2.3.18-rc-dev 2012-06-28 16:01:55 -04:00
doc Fixes/beautification of RPM spec. Tiny improvements in RPM build docs. 2012-07-31 11:41:40 -04:00
src Change smartlist_choose_node_by_bandwidth to avoid double 2012-08-09 12:21:37 -04:00
.gitignore Add some MSVC stuff to gitignore 2012-05-14 12:35:10 -04:00
acinclude.m4 oops: AC_RUN_IFELSE gets offended if I don't give it a AC_LANG_PROGRAM 2012-06-18 11:48:45 -04:00
autogen.sh Use autoreconf, not autoconf&&automake&&etc in autogen.sh 2010-09-27 11:20:12 -04:00
ChangeLog add a blurb for 0.2.3.18-rc, other minor cleanups 2012-06-28 15:32:36 -04:00
configure.in Change smartlist_choose_node_by_bandwidth to avoid double 2012-08-09 12:21:37 -04:00
Doxyfile.in Fix up all doxygen warnings other than "foo is not documented" 2011-03-16 14:47:27 -04:00
INSTALL Small fixes for the 2702 implementation 2011-04-02 12:15:08 +02:00
LICENSE Update copyright dates to 2012; add a few missing copyright statements 2012-06-04 20:58:17 -04:00
Makefile.am Workaround for building EL5 RPMs by specifying rpmbuild-md5. Updated old note about using static libevent when building RPMs. 2012-07-31 11:41:40 -04:00
Makefile.nmake Initial patch to build Tor with msvc and nmake 2011-08-01 12:36:59 -04:00
README we have two faqs for now 2010-02-22 00:41:48 -05:00
ReleaseNotes forward-port the 0.2.2.37 changelog 2012-06-12 07:50:34 -04:00
tor.spec.in Fixes/beautification of RPM spec. Tiny improvements in RPM build docs. 2012-07-31 11:41:40 -04: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

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

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

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

Making applications work with Tor:
        https://wiki.torproject.org/noreply/TheOnionRouter/TorifyHOWTO

Frequently Asked Questions:
        https://www.torproject.org/faq.html
        https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ