3proxy/src/tcppm.c
z3apa3a 6696b35d74 Added -s option support for proxying with splice() for Liux
(without copying network data to
userspace). Currently only for tcppm.
2016-12-19 02:56:23 +03:00

40 lines
806 B
C

/*
3APA3A simpliest proxy server
(c) 2002-2008 by ZARAZA <3APA3A@security.nnov.ru>
please read License Agreement
*/
#include "proxy.h"
#ifndef PORTMAP
#define PORTMAP
#endif
#define RETURN(xxx) { param->res = xxx; goto CLEANRET; }
void * tcppmchild(struct clientparam* param) {
int res;
if(!param->hostname)parsehostname((char *)param->srv->target, param, ntohs(param->srv->targetport));
param->operation = CONNECT;
res = (*param->srv->authfunc)(param);
if(res) {RETURN(res);}
RETURN (mapsocket(param, conf.timeouts[CONNECTION_L]));
CLEANRET:
(*param->srv->logfunc)(param, NULL);
freeparam(param);
return (NULL);
}
#ifdef WITHMAIN
struct proxydef childdef = {
tcppmchild,
0,
0,
S_TCPPM,
" -s use splice() (Fast proxying but no filtering)\n"
};
#include "proxymain.c"
#endif