plugins.c 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /*
  2. 3APA3A simpliest proxy server
  3. (c) 2002-2008 by ZARAZA <3APA3A@security.nnov.ru>
  4. please read License Agreement
  5. $Id: ntlm.c,v 1.8 2007/12/27 13:20:04 vlad Exp $
  6. */
  7. #include "proxy.h"
  8. unsigned bandlimitfunc(struct clientparam *param, unsigned nbytesin, unsigned nbytesout);
  9. void trafcountfunc(struct clientparam *param);
  10. int checkACL(struct clientparam * param);
  11. void nametohash(const unsigned char * name, unsigned char *hash);
  12. unsigned hashindex(const unsigned char* hash);
  13. void decodeurl(unsigned char *s, int allowcr);
  14. int parsestr (unsigned char *str, unsigned char **argm, int nitems, unsigned char ** buff, int *inbuf, int *bufsize);
  15. struct ace * make_ace (int argc, unsigned char ** argv);
  16. extern char * proxy_stringtable[];
  17. extern char * admin_stringtable[];
  18. extern struct schedule * schedule;
  19. int start_proxy_thread(struct child * chp);
  20. extern int linenum;
  21. extern char *conffile;
  22. struct symbol symbols[] = {
  23. {symbols+1, "conf", (void *) &conf},
  24. {symbols+2, "socksend", (void *) socksend},
  25. {symbols+3, "socksendto", (void *) socksendto},
  26. {symbols+4, "sockrecvfrom", (void *) sockrecvfrom},
  27. {symbols+5, "sockgetcharcli", (void *) sockgetcharcli},
  28. {symbols+6, "sockgetcharsrv", (void *) sockgetcharsrv},
  29. {symbols+7, "sockgetlinebuf", (void *) sockgetlinebuf},
  30. {symbols+8, "myinet_ntop", (void *) myinet_ntop},
  31. {symbols+9, "dobuf", (void *) dobuf},
  32. {symbols+10, "scanaddr", (void *) scanaddr},
  33. {symbols+11, "getip", (void *) getip},
  34. {symbols+12, "sockmap", (void *) sockmap},
  35. {symbols+13, "sockfuncs", (void *) &so},
  36. {symbols+14, "ACLmatches", (void *) ACLmatches},
  37. {symbols+15, "bandlimitfunc", (void *) bandlimitfunc},
  38. {symbols+16, "trafcountfunc", (void *) trafcountfunc},
  39. {symbols+17, "alwaysauth", (void *) alwaysauth},
  40. {symbols+18, "ipauth", (void *) ipauth},
  41. {symbols+19, "nbnameauth", (void *) nbnameauth},
  42. {symbols+20, "strongauth", (void *) strongauth},
  43. {symbols+21, "checkACL", (void *) checkACL},
  44. {symbols+22, "nametohash", (void *) nametohash},
  45. {symbols+23, "hashindex", (void *) hashindex},
  46. {symbols+24, "nservers", (void *) nservers},
  47. {symbols+25, "udpresolve", (void *) udpresolve},
  48. {symbols+26, "bandlim_mutex", (void *) &bandlim_mutex},
  49. {symbols+27, "tc_mutex", (void *) &tc_mutex},
  50. {symbols+28, "hash_mutex", (void *) &hash_mutex},
  51. {symbols+29, "pwl_mutex", (void *) &pwl_mutex},
  52. {symbols+30, "linenum", (void *) &linenum},
  53. {symbols+31, "proxy_stringtable", (void *) proxy_stringtable},
  54. {symbols+32, "en64", (void *) en64},
  55. {symbols+33, "de64", (void *) de64},
  56. {symbols+34, "tohex", (void *) tohex},
  57. {symbols+35, "fromhex", (void *) fromhex},
  58. {symbols+36, "dnspr", (void *) dnsprchild},
  59. {symbols+37, "pop3p", (void *) pop3pchild},
  60. {symbols+38, "proxy", (void *) proxychild},
  61. {symbols+39, "socks", (void *) sockschild},
  62. {symbols+40, "tcppm", (void *) tcppmchild},
  63. {symbols+41, "udppm", (void *) udppmchild},
  64. {symbols+42, "admin", (void *) adminchild},
  65. {symbols+43, "ftppr", (void *) ftpprchild},
  66. {symbols+44, "smtpp", (void *) smtppchild},
  67. {symbols+45, "icqpr", (void *) icqprchild},
  68. {symbols+46, "msnpr", (void *) msnprchild},
  69. {symbols+47, "authfuncs", (void *) &authfuncs},
  70. {symbols+48, "commandhandlers", (void *) &commandhandlers},
  71. {symbols+49, "decodeurl", (void *) decodeurl},
  72. {symbols+50, "parsestr", (void *) parsestr},
  73. {symbols+51, "make_ace", (void *) make_ace},
  74. {symbols+52, "freeacl", (void *) freeacl},
  75. {NULL, "", NULL}
  76. };
  77. static void * findbyname(const char *name){
  78. struct symbol * symbols;
  79. for(symbols = &pluginlink.symbols; symbols; symbols=symbols->next)
  80. if(!strcmp(symbols->name, name)) return symbols->value;
  81. return NULL;
  82. }
  83. struct pluginlink pluginlink = {
  84. {symbols, "", NULL},
  85. &conf,
  86. nservers,
  87. &linenum,
  88. authfuncs,
  89. commandhandlers,
  90. findbyname,
  91. socksend,
  92. socksendto,
  93. sockrecvfrom,
  94. sockgetcharcli,
  95. sockgetcharsrv,
  96. sockgetlinebuf,
  97. myinet_ntop,
  98. dobuf,
  99. dobuf2,
  100. scanaddr,
  101. getip,
  102. sockmap,
  103. ACLmatches,
  104. alwaysauth,
  105. checkACL,
  106. nametohash,
  107. hashindex,
  108. en64,
  109. de64,
  110. tohex,
  111. fromhex,
  112. decodeurl,
  113. parsestr,
  114. make_ace,
  115. myalloc,
  116. myfree,
  117. myrealloc,
  118. mystrdup,
  119. trafcountfunc,
  120. proxy_stringtable,
  121. &schedule,
  122. freeacl,
  123. admin_stringtable,
  124. &childdef,
  125. start_proxy_thread,
  126. freeparam,
  127. parsehostname,
  128. parseusername,
  129. parseconnusername,
  130. &so,
  131. dologname
  132. };