- 06 May, 2020 1 commit
-
-
Nick Mathewson authored
GCC added an implicit-fallthrough warning a while back, where it would complain if you had a nontrivial "case:" block that didn't end with break, return, or something like that. Clang recently added the same thing. GCC, however, would let you annotate a fall-through as intended by any of various magic "/* fall through */" comments. Clang, however, only seems to like "__attribute__((fallthrough))". Fortunately, GCC accepts that too. A previous commit in this branch defined a FALLTHROUGH macro to do the right thing if GNUC is defined; here we replace all of our "fall through" comments with uses of that macro. This is an automated commit, made with the following perl one-liner: #!/usr/bin/perl -i -p s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;
-
- 16 Jan, 2019 1 commit
-
-
Nick Mathewson authored
-
- 21 Sep, 2018 1 commit
-
-
Nick Mathewson authored
The parts for handling cell formats should be in src/core/or. The parts for handling onionskin queues should be in src/core/or. Only the crypto wrapper belongs in src/core/crypto.
-
- 05 Jul, 2018 2 commits
-
-
Nick Mathewson authored
I am very glad to have written this script.
-
Nick Mathewson authored
This commit won't build yet -- it just puts everything in a slightly more logical place. The reasoning here is that "src/core" will hold the stuff that every (or nearly every) tor instance will need in order to do onion routing. Other features (including some necessary ones) will live in "src/feature". The "src/app" directory will hold the stuff needed to have Tor be an application you can actually run. This commit DOES NOT refactor the former contents of src/or into a logical set of acyclic libraries, or change any code at all. That will have to come in the future. We will continue to move things around and split them in the future, but I hope this lays a reasonable groundwork for doing so.
-
- 01 Jul, 2018 2 commits
-
-
Nick Mathewson authored
or.h should really include only the minimum of stuff from or/*, common/*, and lib/*.
-
Nick Mathewson authored
-
- 21 Jun, 2018 1 commit
-
-
Nick Mathewson authored
-
- 20 Jun, 2018 2 commits
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- 15 Jun, 2018 3 commits
-
-
Nick Mathewson authored
-
Nick Mathewson authored
Since packed_cell and destroy_cell exist only to be queued, they go in the same headers as the queues.
-
Nick Mathewson authored
-
- 06 Apr, 2018 1 commit
-
-
Isis Lovecruft authored
* ADD new /src/common/crypto_rand.[ch] module. * ADD new /src/common/crypto_util.[ch] module (contains the memwipe() function, since all crypto_* modules need this). * FIXES part of #24658: https://bugs.torproject.org/24658
-
- 16 Feb, 2018 1 commit
-
-
Nick Mathewson authored
Instead, define a maximum size, and enforce it with an assertion.
-
- 05 Feb, 2018 1 commit
-
-
Nick Mathewson authored
Closes ticket 25150
-
- 08 Dec, 2017 1 commit
-
-
Nick Mathewson authored
-
- 04 Aug, 2017 1 commit
-
-
Nick Mathewson authored
Fixes bug 23106; bugfix on 0.2.4.8-alpha. Fortunately, we only support big-endian and little-endian platforms, and on both of those, hton*() and ntoh*() behave the same. And if we did start to support middle endian systems (haha, no), most of _those_ have hton*(x) == ntoh*(x) too.
-
- 15 Mar, 2017 2 commits
-
-
Nick Mathewson authored
-
Nick Mathewson authored
Fixes bug 20059; bugfix on 0.1.0.1-rc.
-
- 08 Dec, 2016 2 commits
-
-
Nick Mathewson authored
-
Nick Mathewson authored
I need to be able to turn on Ed25519 support in client generation of extend cells so I can test it, but leave it off-by-default until enough clients support it for us to turn it on for a bunch at once. This is part of #15056 / prop#220.
-
- 11 Nov, 2016 1 commit
-
-
Nick Mathewson authored
(Not extended2/created2; that's too simple.) Incidentally, add ed25519 identities to the mix when we have them.
-
- 17 Oct, 2016 1 commit
-
-
Nick Mathewson authored
This commit adds or improves the module-level documenation for: buffers.c circuitstats.c command.c connection_edge.c control.c cpuworker.c crypto_curve25519.c crypto_curve25519.h crypto_ed25519.c crypto_format.c dircollate.c dirserv.c dns.c dns_structs.h fp_pair.c geoip.c hibernate.c keypin.c ntmain.c onion.c onion_fast.c onion_ntor.c onion_tap.c periodic.c protover.c protover.h reasons.c rephist.c replaycache.c routerlist.c routerparse.c routerset.c statefile.c status.c tor_main.c workqueue.c In particular, I've tried to explain (for each documented module) what each module does, what's in it, what the big idea is, why it belongs in Tor, and who calls it. In a few cases, I've added TODO notes about refactoring opportunities. I've also renamed an argument, and fixed a few DOCDOC comments.
-
- 24 Aug, 2016 1 commit
-
-
teor (Tim Wilson-Brown) authored
When a client connects to an intro point not in the client's consensus, or a hidden service connects to a rend point not in the hidden service's consensus, we are stuck with using TAP, because there is no ntor link specifier.
-
- 06 Jul, 2016 1 commit
-
-
Nick Mathewson authored
-
- 12 Jun, 2016 1 commit
-
-
Andrea Shepard authored
-
- 11 Jun, 2016 1 commit
-
-
Nick Mathewson authored
This is a big-ish patch, but it's very straightforward. Under this clang warning, we're not actually allowed to have a global variable without a previous extern declaration for it. The cases where we violated this rule fall into three roughly equal groups: * Stuff that should have been static. * Stuff that was global but where the extern was local to some other C file. * Stuff that was only global when built for the unit tests, that needed a conditional extern in the headers. The first two were IMO genuine problems; the last is a wart of how we build tests.
-
- 30 May, 2016 1 commit
-
-
Nick Mathewson authored
So, back long ago, XXX012 meant, "before Tor 0.1.2 is released, we had better revisit this comment and fix it!" But we have a huge pile of such comments accumulated for a large number of released versions! Not cool. So, here's what I tried to do: * 0.2.9 and 0.2.8 are retained, since those are not yet released. * XXX+ or XXX++ or XXX++++ or whatever means, "This one looks quite important!" * The others, after one-by-one examination, are downgraded to plain old XXX. Which doesn't mean they aren't a problem -- just that they cannot possibly be a release-blocking problem.
-
- 29 Mar, 2016 1 commit
-
-
Roger Dingledine authored
-
- 27 Feb, 2016 1 commit
-
-
Nick Mathewson authored
-
- 14 Jan, 2015 1 commit
-
-
Nick Mathewson authored
-
- 02 Jan, 2015 1 commit
-
-
Nick Mathewson authored
-
- 28 Oct, 2014 1 commit
-
-
Nick Mathewson authored
Because in 95 years, we or our successors will surely care about enforcing the BSD license terms on this code. Right?
-
- 27 Oct, 2014 1 commit
-
-
Sebastian Hahn authored
By now, support in the network is widespread and it's time to require more modern crypto on all Tor instances, whether they're clients or servers. By doing this early in 0.2.6, we can be sure that at some point all clients will have reasonable support.
-
- 16 Oct, 2014 1 commit
-
-
Nick Mathewson authored
Also, refactor the way we handle failed handshakes so that this warning doesn't propagate itself to "onion_skin_client_handshake failed" and "circuit_finish_handshake failed" and "connection_edge_process_relay_cell (at origin) failed." Resolves warning from 9635.
-
- 19 Apr, 2014 1 commit
-
-
Nick Mathewson authored
As it stands, it relies on the fact that onion_queue_entry_remove will magically remove each onionskin from the right list. This patch changes the logic to be more resilient to possible bugs in onion_queue_entry_remove, and less confusing to static analysis tools.
-
- 27 Mar, 2014 1 commit
-
-
Nick Mathewson authored
Fix for bug9635.
-
- 03 Jan, 2014 1 commit
-
-
Nick Mathewson authored
This is harmless in the Tor of today, but important for correctness. Fixes bug 10536; bugfix on 0.2.4.8-alpha. Reported by "cypherpunks".
-
- 05 Sep, 2013 1 commit
-
-
Roger Dingledine authored
Now we explicitly check for overflow. This approach seemed smarter than a cascade of "change int to unsigned int and hope nothing breaks right before the release". Nick, feel free to fix in a better way, maybe in master.
-