ratox

FIFO based tox client
git clone git://git.2f30.org/ratox.git
Log | Files | Refs | README | LICENSE

commit ab8e59fcb9749f90207c959fffd3e3263b520019
parent 9290ff8baa69f9afe77503a2c3694b1059b9d9aa
Author: sin <sin@2f30.org>
Date:   Tue Sep 23 13:35:44 +0100

Add proxy support

(Remove tcpenabled from config.def.h as it can easily be flipped
at runtime via the cmdline switch).

Diffstat:
config.def.h | 4+++-
ratox.c | 19++++++++++++++++---
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/config.def.h b/config.def.h @@ -1,7 +1,9 @@ /* See LICENSE file for copyright and license details. */ static int encryptdatafile = 0; -static int tcpenabled = 0; + +static char proxyaddr[] = "localhost"; +static uint16_t proxyport = 8080; static struct node nodes[] = { { diff --git a/ratox.c b/ratox.c @@ -169,6 +169,8 @@ static uint32_t pplen; static uint8_t toilet[BUFSIZ]; static int running = 1; static int ipv6; +static int tcpflag; +static int proxyflag; static void printrat(void); static void printout(const char *, ...); @@ -757,7 +759,14 @@ static int toxinit(void) { toxopt.ipv6enabled = ipv6; - toxopt.udp_disabled = tcpenabled; + toxopt.udp_disabled = tcpflag; + if (proxyflag == 1) { + snprintf(toxopt.proxy_address, sizeof(toxopt.proxy_address), + "%s", proxyaddr); + toxopt.proxy_port = proxyport; + toxopt.proxy_enabled = 1; + printout("Using proxy %s:%hu\n", proxyaddr, proxyport); + } tox = tox_new(&toxopt); dataload(); datasave(); @@ -1247,10 +1256,11 @@ shutdown(void) static void usage(void) { - fprintf(stderr, "usage: %s [-4|-6] [-t]\n", argv0); + fprintf(stderr, "usage: %s [-4|-6] [-t] [-p]\n", argv0); fprintf(stderr, " -4\tIPv4 only\n"); fprintf(stderr, " -6\tIPv6 only\n"); fprintf(stderr, " -t\tEnable TCP mode (UDP by default)\n"); + fprintf(stderr, " -p\tEnable TCP socks5 proxy\n"); exit(EXIT_FAILURE); } @@ -1264,7 +1274,10 @@ main(int argc, char *argv[]) ipv6 = 1; break; case 't': - tcpenabled = 1; + tcpflag = 1; + break; + case 'p': + proxyflag = 1; break; default: usage();