re:transconnect Code
Brought to you by:
ksa242
re:transconnect was written after semi-successful attempts to use Transconnect (http://transconnect.sourceforge.net/) in personal projects -- it worked but lacked fine-grained configuration via environment variables. For me re:transconnect is also a bit cleaner, but your mileage may vary. The library is compileable under Linux using GCC or clang. Will probably compile under *BSD and MacOS X (haven't tried though), won't compile under Windows. Build reports and patches are welcomed. To compile, just type `make`. Once compiled, type `make install` to install the library (rtconn.so) to your $HOME/.rtconn directory, or just put the library to wherever you need. Configuration file should be composed of (key, value) pairs separated by white-spaces, one pair per line. Values should not be enclosed in quotes. Lines beginning with '#' or ';' are treated as comments and skipped. Inline comments are not supported. Lines have to be less than 1024 characters long. Check out rtconn.conf.example for details. Configuration file is optional, the library is still functional without it controlled by environment variables only. re:transconnect accepts following environment variables: * RTCONN_CONF -- sets alternative configuration file name; * RTCONN_HOST, RTCONN_PORT, RTCONN_TYPE, RTCONN_USER, RTCONN_PASS -- override 'host', 'port', 'type', 'user' and 'pass' options respectively; * RTCONN_TIMEOUT, RTCONN_VERBOSE, RTCONN_USER_AGENT -- override 'verbose', 'timeout' and 'user_agent' options respectively; Usage example: $ RTCONN_CONF="./rtconn.conf" \ RTCONN_HOST="proxy.example.com" RTCONN_PORT="8080" \ RTCONN_USER="foo" RTCONN_PASS="bar" \ LD_PRELOAD="./rtconn.so" \ curl http://www.example.com/ Known limitations: * only TCP traffic is proxiable, other protocols will be connected directly; * only SOCKS4, SOCKS5, and HTTP proxies able to handle 'CONNECT' method are supported; * no support for SOCKS4a proxies (yet); * no support for IPv6 yet. Public domain. Feel free to use however you see fit. Have fun. Sergey Kolchin <ksa242@gmail.com>