tcppm.c 769 B

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