1 /* 2 3APA3A simpliest proxy server 3 (c) 2002-2016 by Vladimir Dubrovin <3proxy@3proxy.ru> 4 5 please read License Agreement 6 7 */ 8 9 #include "proxy.h" 10 11 #ifndef PORTMAP 12 #define PORTMAP 13 #endif 14 #define RETURN(xxx) { param->res = xxx; goto CLEANRET; } 15 tcppmchild(struct clientparam * param)16void * tcppmchild(struct clientparam* param) { 17 int res; 18 19 if(!param->hostname && parsehostname((char *)param->srv->target, param, ntohs(param->srv->targetport))) RETURN(100); 20 param->operation = CONNECT; 21 res = (*param->srv->authfunc)(param); 22 if(res) {RETURN(res);} 23 RETURN (mapsocket(param, conf.timeouts[CONNECTION_L])); 24 CLEANRET: 25 26 dolog(param, param->hostname); 27 freeparam(param); 28 return (NULL); 29 } 30 31 #ifdef WITHMAIN 32 struct proxydef childdef = { 33 tcppmchild, 34 0, 35 0, 36 S_TCPPM, 37 "" 38 }; 39 #include "proxymain.c" 40 #endif 41