mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-22 18:15:41 +08:00
"auto" command added
This commit is contained in:
parent
5165a4d5bd
commit
fb56b7d307
@ -91,6 +91,9 @@ srvftppr$(OBJSUFFICS): ftppr.c proxy.h structures.h
|
||||
srvtcppm$(OBJSUFFICS): tcppm.c proxy.h structures.h
|
||||
$(CC) $(COUT)srvtcppm$(OBJSUFFICS) $(CFLAGS) tcppm.c
|
||||
|
||||
srvauto$(OBJSUFFICS): auto.c proxy.h structures.h
|
||||
$(CC) $(COUT)srvauto$(OBJSUFFICS) $(CFLAGS) auto.c
|
||||
|
||||
srvsocks$(OBJSUFFICS): socks.c proxy.h structures.h
|
||||
$(CC) $(COUT)srvsocks$(OBJSUFFICS) $(CFLAGS) socks.c
|
||||
|
||||
@ -143,6 +146,6 @@ ntlm$(OBJSUFFICS): ntlm.c
|
||||
stringtable$(OBJSUFFICS): stringtable.c
|
||||
$(CC) $(COUT)stringtable$(OBJSUFFICS) $(CFLAGS) stringtable.c
|
||||
|
||||
$(BUILDDIR)3proxy$(EXESUFFICS): 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) log$(OBJSUFFICS) datatypes$(OBJSUFFICS) md4$(OBJSUFFICS) md5$(OBJSUFFICS) mycrypt$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(VERSIONDEP)
|
||||
$(LN) $(LNOUT)$(BUILDDIR)3proxy$(EXESUFFICS) $(LDFLAGS) $(VERFILE) 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) log$(OBJSUFFICS) mycrypt$(OBJSUFFICS) md5$(OBJSUFFICS) md4$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
|
||||
$(BUILDDIR)3proxy$(EXESUFFICS): 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvauto$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) log$(OBJSUFFICS) datatypes$(OBJSUFFICS) md4$(OBJSUFFICS) md5$(OBJSUFFICS) mycrypt$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(VERSIONDEP)
|
||||
$(LN) $(LNOUT)$(BUILDDIR)3proxy$(EXESUFFICS) $(LDFLAGS) $(VERFILE) 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) srvauto$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) log$(OBJSUFFICS) mycrypt$(OBJSUFFICS) md5$(OBJSUFFICS) md4$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
|
||||
|
||||
|
28
src/auto.c
Normal file
28
src/auto.c
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
3APA3A simpliest proxy server
|
||||
(c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org>
|
||||
|
||||
please read License Agreement
|
||||
|
||||
*/
|
||||
|
||||
#include "proxy.h"
|
||||
|
||||
|
||||
void * autochild(struct clientparam* param) {
|
||||
int len;
|
||||
|
||||
if(!param->clibuf){
|
||||
if(!(param->clibuf = myalloc(SRVBUFSIZE))) return 0;
|
||||
param->clibufsize = SRVBUFSIZE;
|
||||
param->clioffset = param->cliinbuf = 0;
|
||||
}
|
||||
len = sockfillbuffcli(param, 1, CONNECTION_S);
|
||||
if (len != 1){
|
||||
param->res = 801;
|
||||
dolog(param, "");
|
||||
}
|
||||
if(*param->clibuf == 4 || *param->clibuf == 5) return sockschild(param);
|
||||
return proxychild(param);
|
||||
}
|
||||
|
12
src/conf.c
12
src/conf.c
@ -224,6 +224,13 @@ static int h_proxy(int argc, unsigned char ** argv){
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if(!strcmp((char *)argv[0], "auto")) {
|
||||
childdef.pf = autochild;
|
||||
childdef.port = 8080;
|
||||
childdef.isudp = 0;
|
||||
childdef.service = S_AUTO;
|
||||
childdef.helpmessage = "";
|
||||
}
|
||||
else if(!strcmp((char *)argv[0], "tcppm")) {
|
||||
childdef.pf = tcppmchild;
|
||||
childdef.port = 0;
|
||||
@ -1601,8 +1608,9 @@ struct commands commandhandlers[]={
|
||||
{commandhandlers+61, "force", h_force, 1, 1},
|
||||
{commandhandlers+62, "noforce", h_noforce, 1, 1},
|
||||
{commandhandlers+63, "parentretries", h_parentretries, 2, 2},
|
||||
{commandhandlers+64, "auto", h_proxy, 1, 0},
|
||||
#ifndef NORADIUS
|
||||
{commandhandlers+64, "radius", h_radius, 3, 0},
|
||||
{commandhandlers+65, "radius", h_radius, 3, 0},
|
||||
#endif
|
||||
{specificcommands, "", h_noop, 1, 0}
|
||||
};
|
||||
@ -1899,6 +1907,7 @@ int reload (void){
|
||||
FILE *fp;
|
||||
int error = -2;
|
||||
|
||||
pthread_mutex_lock(&config_mutex);
|
||||
conf.paused++;
|
||||
freeconf(&conf);
|
||||
conf.paused++;
|
||||
@ -1912,5 +1921,6 @@ int reload (void){
|
||||
}
|
||||
if(!writable)fclose(fp);
|
||||
}
|
||||
pthread_mutex_unlock(&config_mutex);
|
||||
return error;
|
||||
}
|
||||
|
@ -293,6 +293,7 @@ void * smtppchild(struct clientparam * param);
|
||||
void * proxychild(struct clientparam * param);
|
||||
void * sockschild(struct clientparam * param);
|
||||
void * tcppmchild(struct clientparam * param);
|
||||
void * autochild(struct clientparam * param);
|
||||
void * udppmchild(struct clientparam * param);
|
||||
void * adminchild(struct clientparam * param);
|
||||
void * ftpprchild(struct clientparam * param);
|
||||
|
@ -183,7 +183,8 @@ typedef enum {
|
||||
S_SMTPP,
|
||||
S_REVLI,
|
||||
S_REVCO,
|
||||
S_ZOMBIE
|
||||
S_ZOMBIE,
|
||||
S_AUTO
|
||||
}PROXYSERVICE;
|
||||
|
||||
struct clientparam;
|
||||
|
Loading…
Reference in New Issue
Block a user