Menu

Tree [r8] /
 History

HTTPS access


File Date Author Commit
 Makefile 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 README 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 base64.c 2011-05-01 ksa242 [r1] Initial import
 base64.h 2011-05-01 ksa242 [r1] Initial import
 conf.c 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 conf.h 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...
 http.c 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 http.h 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 rtconn.c 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...
 rtconn.conf.example 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...
 rtconn.h 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 socket.c 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 socket.h 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 socks.c 2012-01-09 ksa242 [r8] Move internal rtconn_send()/rtconn_recv() to th...
 socks.h 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...
 util.c 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...
 util.h 2011-06-24 ksa242 [r5] Add SOCKS4/5 support. Add very basic IPv6 supp...

Read Me

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>