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)16 void * 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