Просмотр исходного кода

Merge branch 'devel' of https://github.com/z3APA3A/3proxy into devel

z3APA3A 9 лет назад
Родитель
Сommit
1d162abec3
5 измененных файлов с 18 добавлено и 3 удалено
  1. 1 1
      src/common.c
  2. 13 0
      src/conf.c
  3. 1 0
      src/proxymain.c
  4. 1 1
      src/sockmap.c
  5. 2 1
      src/structures.h

+ 1 - 1
src/common.c

@@ -63,7 +63,7 @@ struct extparam conf = {
 #else
 	0,
 #endif
-	0, -1, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0,
+	0, -1, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0, 0,
 	6, 600,
 	1048576,
 	NULL, NULL,

+ 13 - 0
src/conf.c

@@ -341,6 +341,17 @@ static int h_stacksize(int argc, unsigned char **argv){
 	return 0;
 }
 
+
+static int h_force(int argc, unsigned char **argv){
+	conf.noforce = 0;
+	return 0;
+}
+
+static int h_noforce(int argc, unsigned char **argv){
+	conf.noforce = 1;
+	return 0;
+}
+
 static int h_service(int argc, unsigned char **argv){
 	return 0;
 }
@@ -1400,6 +1411,8 @@ struct commands commandhandlers[]={
 	{commandhandlers+56, "delimchar",h_delimchar, 2, 2},
 	{commandhandlers+57, "authnserver", h_authnserver, 2, 2},
 	{commandhandlers+58, "stacksize", h_stacksize, 2, 2},
+	{commandhandlers+59, "force", h_force, 1, 1},
+	{commandhandlers+60, "noforce", h_noforce, 1, 1},
 	{specificcommands, 	 "", h_noop, 1, 0}
 };
 

+ 1 - 0
src/proxymain.c

@@ -713,6 +713,7 @@ void srvinit(struct srvparam * srv, struct clientparam *param){
  srv->version = conf.version + 1;
  srv->paused = conf.paused;
  srv->logfunc = conf.logfunc;
+ srv->noforce = conf.noforce;
  if(srv->logformat)myfree(srv->logformat);
  srv->logformat = conf.logformat? (unsigned char *)mystrdup((char *)conf.logformat) : NULL;
  srv->authfunc = conf.authfunc;

+ 1 - 1
src/sockmap.c

@@ -69,7 +69,7 @@ int sockmap(struct clientparam * param, int timeo){
  while (!stop&&!conf.timetoexit){
 	sasize = sizeof(struct sockaddr_in);
 	if(param->version < conf.version){
-		if (res = (*param->srv->authfunc)(param)) {return(res);}
+		if((res = (*param->srv->authfunc)(param)) && !param->srv->noforce) {return(res);}
 		param->paused = conf.paused;
 		param->version = conf.version;
 	}

+ 2 - 1
src/structures.h

@@ -373,6 +373,7 @@ struct srvparam {
 	int nfilters, nreqfilters, nhdrfilterscli, nhdrfilterssrv, npredatfilters, ndatfilterscli, ndatfilterssrv;
 	int family;
 	int stacksize;
+	int noforce;
 	unsigned bufsize;
 	unsigned logdumpsrv, logdumpcli;
 #ifndef NOIPV6
@@ -496,7 +497,7 @@ struct extparam {
 	struct trafcount * trafcounter;
 	struct srvparam *services;
 	int stacksize, threadinit, counterd, haveerror, rotate, paused, archiverc,
-		demon, maxchild, singlepacket, needreload, timetoexit, version;
+		demon, maxchild, singlepacket, needreload, timetoexit, version, noforce;
 	int authcachetype, authcachetime;
 	int filtermaxsize;
 	unsigned char *logname, **archiver;