| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /*
- 3APA3A simpliest proxy server
- (c) 2002-2008 by ZARAZA <3APA3A@security.nnov.ru>
- please read License Agreement
- */
- #include "proxy.h"
- unsigned bandlimitfunc(struct clientparam *param, unsigned nbytesin, unsigned nbytesout);
- void trafcountfunc(struct clientparam *param);
- int checkACL(struct clientparam * param);
- void nametohash(const unsigned char * name, unsigned char *hash);
- unsigned hashindex(const unsigned char* hash);
- void decodeurl(unsigned char *s, int allowcr);
- int parsestr (unsigned char *str, unsigned char **argm, int nitems, unsigned char ** buff, int *inbuf, int *bufsize);
- struct ace * make_ace (int argc, unsigned char ** argv);
- extern char * proxy_stringtable[];
- extern char * admin_stringtable[];
- extern struct schedule * schedule;
- int start_proxy_thread(struct child * chp);
- extern int linenum;
- extern char *conffile;
- struct symbol symbols[] = {
- {symbols+1, "conf", (void *) &conf},
- {symbols+2, "socksend", (void *) socksend},
- {symbols+3, "socksendto", (void *) socksendto},
- {symbols+4, "sockrecvfrom", (void *) sockrecvfrom},
- {symbols+5, "sockgetcharcli", (void *) sockgetcharcli},
- {symbols+6, "sockgetcharsrv", (void *) sockgetcharsrv},
- {symbols+7, "sockgetlinebuf", (void *) sockgetlinebuf},
- {symbols+8, "myinet_ntop", (void *) myinet_ntop},
- {symbols+9, "dobuf", (void *) dobuf},
- {symbols+10, "scanaddr", (void *) scanaddr},
- {symbols+11, "getip", (void *) getip},
- {symbols+12, "sockmap", (void *) sockmap},
- {symbols+13, "sockfuncs", (void *) &so},
- {symbols+14, "ACLmatches", (void *) ACLmatches},
- {symbols+15, "bandlimitfunc", (void *) bandlimitfunc},
- {symbols+16, "trafcountfunc", (void *) trafcountfunc},
- {symbols+17, "alwaysauth", (void *) alwaysauth},
- {symbols+18, "ipauth", (void *) ipauth},
- {symbols+19, "strongauth", (void *) strongauth},
- {symbols+20, "checkACL", (void *) checkACL},
- {symbols+21, "nametohash", (void *) nametohash},
- {symbols+22, "hashindex", (void *) hashindex},
- {symbols+23, "nservers", (void *) nservers},
- {symbols+24, "udpresolve", (void *) udpresolve},
- {symbols+25, "bandlim_mutex", (void *) &bandlim_mutex},
- {symbols+26, "tc_mutex", (void *) &tc_mutex},
- {symbols+27, "hash_mutex", (void *) &hash_mutex},
- {symbols+28, "pwl_mutex", (void *) &pwl_mutex},
- {symbols+29, "linenum", (void *) &linenum},
- {symbols+30, "proxy_stringtable", (void *) proxy_stringtable},
- {symbols+31, "en64", (void *) en64},
- {symbols+32, "de64", (void *) de64},
- {symbols+33, "tohex", (void *) tohex},
- {symbols+34, "fromhex", (void *) fromhex},
- {symbols+35, "dnspr", (void *) dnsprchild},
- {symbols+36, "pop3p", (void *) pop3pchild},
- {symbols+37, "proxy", (void *) proxychild},
- {symbols+38, "socks", (void *) sockschild},
- {symbols+39, "tcppm", (void *) tcppmchild},
- {symbols+40, "udppm", (void *) udppmchild},
- {symbols+41, "admin", (void *) adminchild},
- {symbols+42, "ftppr", (void *) ftpprchild},
- {symbols+43, "smtpp", (void *) smtppchild},
- {symbols+44, "icqpr", (void *) icqprchild},
- /*
- {symbols+45, "msnpr", (void *) msnprchild},
- */
- {symbols+45, "authfuncs", (void *) &authfuncs},
- {symbols+46, "commandhandlers", (void *) &commandhandlers},
- {symbols+47, "decodeurl", (void *) decodeurl},
- {symbols+48, "parsestr", (void *) parsestr},
- {symbols+49, "make_ace", (void *) make_ace},
- {symbols+50, "freeacl", (void *) freeacl},
- {symbols+51, "getip46", (void *) getip46},
- {NULL, "", NULL}
- };
- static void * findbyname(const char *name){
- struct symbol * symbols;
- for(symbols = &pluginlink.symbols; symbols; symbols=symbols->next)
- if(!strcmp(symbols->name, name)) return symbols->value;
- return NULL;
- }
- struct pluginlink pluginlink = {
- {symbols, "", NULL},
- &conf,
- nservers,
- &linenum,
- authfuncs,
- commandhandlers,
- findbyname,
- socksend,
- socksendto,
- sockrecvfrom,
- sockgetcharcli,
- sockgetcharsrv,
- sockgetlinebuf,
- myinet_ntop,
- dobuf,
- dobuf2,
- scanaddr,
- getip,
- getip46,
- sockmap,
- ACLmatches,
- alwaysauth,
- checkACL,
- nametohash,
- hashindex,
- en64,
- de64,
- tohex,
- fromhex,
- decodeurl,
- parsestr,
- make_ace,
- myalloc,
- myfree,
- myrealloc,
- mystrdup,
- trafcountfunc,
- proxy_stringtable,
- &schedule,
- freeacl,
- admin_stringtable,
- &childdef,
- start_proxy_thread,
- freeparam,
- parsehostname,
- parseusername,
- parseconnusername,
- &so,
- dologname
- };
|