Jelajahi Sumber

Few bugfixes

z3APA3A 5 tahun lalu
induk
melakukan
fad5dfb7ab
4 mengubah file dengan 10 tambahan dan 11 penghapusan
  1. 5 5
      src/auth.c
  2. 2 2
      src/conf.c
  3. 1 1
      src/plugins/FilePlugin/FilePlugin.c
  4. 2 3
      src/plugins/PCREPlugin/pcre_plugin.c

+ 5 - 5
src/auth.c

@@ -505,6 +505,11 @@ void stopconnlims (struct clientparam *param){
 static void initbandlims (struct clientparam *param){
 static void initbandlims (struct clientparam *param){
 	struct bandlim * be;
 	struct bandlim * be;
 	int i;
 	int i;
+
+	param->bandlimfunc = NULL;
+	param->bandlims[0] = NULL;
+	param->bandlimsout[0] = NULL;
+	if(!conf.bandlimfunc || (!conf.bandlimiter && !conf.bandlimiterout)) return;
 	for(i=0, be = conf.bandlimiter; be && i<MAXBANDLIMS; be = be->next) {
 	for(i=0, be = conf.bandlimiter; be && i<MAXBANDLIMS; be = be->next) {
 		if(ACLmatches(be->ace, param)){
 		if(ACLmatches(be->ace, param)){
 			if(be->ace->action == NOBANDLIM) {
 			if(be->ace->action == NOBANDLIM) {
@@ -552,11 +557,6 @@ unsigned bandlimitfunc(struct clientparam *param, unsigned nbytesin, unsigned nb
 	if(!nbytesin && !nbytesout) return 0;
 	if(!nbytesin && !nbytesout) return 0;
 	pthread_mutex_lock(&bandlim_mutex);
 	pthread_mutex_lock(&bandlim_mutex);
 	if(param->bandlimver != conf.bandlimver){
 	if(param->bandlimver != conf.bandlimver){
-		if(!conf.bandlimfunc){
-			param->bandlimfunc = NULL;
-			pthread_mutex_unlock(&bandlim_mutex);
-			return 0;
-		}
 		initbandlims(param);
 		initbandlims(param);
 		param->bandlimver = conf.paused;
 		param->bandlimver = conf.paused;
 	}
 	}

+ 2 - 2
src/conf.c

@@ -1233,12 +1233,12 @@ static int h_radius(int argc, char **argv){
 	strcpy(radiussecret, argv[1]);
 	strcpy(radiussecret, argv[1]);
 	for( nradservers=0; nradservers < MAXRADIUS && nradservers < argc -2; nradservers++){
 	for( nradservers=0; nradservers < MAXRADIUS && nradservers < argc -2; nradservers++){
 		char *s = 0;
 		char *s = 0;
-		if(strchr(argv[nradservers + 2], '/')){
+		if((s=strchr(argv[nradservers + 2], '/'))){
 			*s = 0;
 			*s = 0;
 			s++;
 			s++;
 		}
 		}
 		if( !getip46(46, argv[nradservers + 2], (struct sockaddr *)&radiuslist[nradservers].authaddr)) return 1;
 		if( !getip46(46, argv[nradservers + 2], (struct sockaddr *)&radiuslist[nradservers].authaddr)) return 1;
-		if( s && !getip46(46, s, (struct sockaddr *)&radiuslist[nradservers].localaddr)) return 2;
+		if( s && !getip46(46, s+1, (struct sockaddr *)&radiuslist[nradservers].localaddr)) return 2;
 		if(!*SAPORT(&radiuslist[nradservers].authaddr))*SAPORT(&radiuslist[nradservers].authaddr) = htons(1812);
 		if(!*SAPORT(&radiuslist[nradservers].authaddr))*SAPORT(&radiuslist[nradservers].authaddr) = htons(1812);
 		port = ntohs(*SAPORT(&radiuslist[nradservers].authaddr));
 		port = ntohs(*SAPORT(&radiuslist[nradservers].authaddr));
 		radiuslist[nradservers].logaddr = radiuslist[nradservers].authaddr;
 		radiuslist[nradservers].logaddr = radiuslist[nradservers].authaddr;

+ 1 - 1
src/plugins/FilePlugin/FilePlugin.c

@@ -577,7 +577,7 @@ static int WINAPI fp_sendto(SOCKET s, const void *msg, int len, int flags, const
 	case GOT_FTP_CLIDATA:
 	case GOT_FTP_CLIDATA:
 	case GOT_FTP_SRVDATA:
 	case GOT_FTP_SRVDATA:
 	case GOT_HTTP_CLIDATA:
 	case GOT_HTTP_CLIDATA:
-		if((!fps->what & FP_CLIDATA)) break;
+		if(!(fps->what & FP_CLIDATA)) break;
 #ifdef _WIN32
 #ifdef _WIN32
 		if(SetFilePointer(fps->fpd.h_cli, fps->clientwritten + fps->clihdrwritten, 0, FILE_BEGIN) != (fps->clientwritten + fps->clihdrwritten)){
 		if(SetFilePointer(fps->fpd.h_cli, fps->clientwritten + fps->clihdrwritten, 0, FILE_BEGIN) != (fps->clientwritten + fps->clihdrwritten)){
 			return -1;
 			return -1;

+ 2 - 3
src/plugins/PCREPlugin/pcre_plugin.c

@@ -351,7 +351,7 @@ static struct commands pcre_commandhandlers[] = {
 static struct symbol regexp_symbols[] = {
 static struct symbol regexp_symbols[] = {
 	{regexp_symbols+1, "pcre_compile", (void*) pcre_compile},
 	{regexp_symbols+1, "pcre_compile", (void*) pcre_compile},
 	{regexp_symbols+2, "pcre_exec", (void*) pcre_exec},
 	{regexp_symbols+2, "pcre_exec", (void*) pcre_exec},
-	{NULL, "pcre_free", NULL},
+	{NULL, "pcre_config", (void *)pcre_config},
 };
 };
 
 
 #ifdef WATCOM
 #ifdef WATCOM
@@ -371,8 +371,7 @@ PLUGINAPI int PLUGINCALL pcre_plugin (struct pluginlink * pluginlink,
 		pcre_free = pl->freefunc;
 		pcre_free = pl->freefunc;
 		pcre_loaded = 1;
 		pcre_loaded = 1;
 		pthread_mutex_init(&pcre_mutex, NULL);
 		pthread_mutex_init(&pcre_mutex, NULL);
-		regexp_symbols[6].value = pl->freefunc;
-		regexp_symbols[6].next = pl->symbols.next;
+		regexp_symbols[2].next = pl->symbols.next;
 		pl->symbols.next = regexp_symbols;
 		pl->symbols.next = regexp_symbols;
 		pcre_commandhandlers[3].next = pl->commandhandlers->next;
 		pcre_commandhandlers[3].next = pl->commandhandlers->next;
 		pl->commandhandlers->next = pcre_commandhandlers;
 		pl->commandhandlers->next = pcre_commandhandlers;