Parcourir la source

Defer SSL init to first command in ssl_plugin

z3APA3A il y a 10 ans
Parent
commit
c96d415020
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      src/plugins/SSLPlugin/ssl_plugin.c

+ 6 - 1
src/plugins/SSLPlugin/ssl_plugin.c

@@ -326,8 +326,13 @@ static struct filter ssl_filter = {
 };
 };
 
 
 int mitm = 0;
 int mitm = 0;
+int ssl_inited = 0;
 
 
 static int h_mitm(int argc, unsigned char **argv){
 static int h_mitm(int argc, unsigned char **argv){
+	if(!ssl_inited) {
+		ssl_init();
+		ssl_inited = 1;
+	}
 	if((mitm&1)) return 1;
 	if((mitm&1)) return 1;
 	if(mitm) usleep(100*SLEEPTIME);
 	if(mitm) usleep(100*SLEEPTIME);
 	ssl_filter.next = pl->conf->filters;
 	ssl_filter.next = pl->conf->filters;
@@ -389,9 +394,9 @@ __declspec(dllexport)
 	}
 	}
 	else {
 	else {
 		ssl_release();
 		ssl_release();
+		ssl_inited = 0;
 	}
 	}
 
 
-	ssl_init();
 	tcppmfunc = (PROXYFUNC)pl->findbyname("tcppm");	
 	tcppmfunc = (PROXYFUNC)pl->findbyname("tcppm");	
 	if(!tcppmfunc){return 13;}
 	if(!tcppmfunc){return 13;}
 	proxyfunc = (PROXYFUNC)pl->findbyname("proxy");	
 	proxyfunc = (PROXYFUNC)pl->findbyname("proxy");