Hi everyone,
The torsocks 2.0-rc3 code is getting quite stable in my opinion. There are still some issues but nothing feature critical.
https://github.com/dgoulet/torsocks
I would really love to have help with code review so it can get accepted as a replacement in the near future. Some of you already gave feedbacks so thanks but now it needs the "seal of approval" from the community :).
Here are some things you can start with. This new version is built to be thread safe and provides a good compatibility layer for OSes (right now FreeBSD, NetBSD, Linux and OS X are supported). Considering that, you can direct your attention to this:
* Synchronization issues (multi threading, reentrancy, ...) * Security obviously :) * Correctness.
This is an "inprocess" library thus it has to be bullet proof so it does not crash the application.
In src/lib/, every libc call is in its corresponding file matching the man page name like for instance gethostbyname.c contains all reentrant functions and other version of that family as well (gethostbyname_r, gethostbyname2, etc...). Reviewing them just to make sure they mimick as close as possible the libc behaviour.
In src/common, connection.c/.h and onion.c/.h are probably the two interfaces that need review. Connection is the one handling new socket and their state where Onion handles the cookies that are sent back to the client (by default: 127.42.42.x) to map an onion address to that cookie once a connection is established (connect()).
Other than that, man pages and documentation are also important.
You can send patches via email or/and pull request (github or not), I'm easy for contributions! :)
Thanks to all! David