Selaa lähdekoodia

msrp: cache in a local variable if tls module is loaded

- avoid looping at runtime through the list of modules
Daniel-Constantin Mierla 12 vuotta sitten
vanhempi
commit
32951506df
3 muutettua tiedostoa jossa 9 lisäystä ja 3 poistoa
  1. 3 2
      modules/msrp/msrp_cmap.c
  2. 3 0
      modules/msrp/msrp_mod.c
  3. 3 1
      modules/msrp/msrp_vars.c

+ 3 - 2
modules/msrp/msrp_cmap.c

@@ -43,6 +43,7 @@ static sruid_t _msrp_sruid;
 
 
 extern int msrp_auth_min_expires;
 extern int msrp_auth_min_expires;
 extern int msrp_auth_max_expires;
 extern int msrp_auth_max_expires;
+extern int msrp_tls_module_loaded;
 extern str msrp_use_path_addr;
 extern str msrp_use_path_addr;
 
 
 /**
 /**
@@ -211,8 +212,8 @@ int msrp_cmap_save(msrp_frame_t *mf)
 	hid = msrp_get_hashid(&_msrp_sruid.uid);	
 	hid = msrp_get_hashid(&_msrp_sruid.uid);	
 	idx = msrp_get_slot(hid, _msrp_cmap_head->mapsize);
 	idx = msrp_get_slot(hid, _msrp_cmap_head->mapsize);
 
 
-	srcaddr.s = sbuf;;
-	if (module_loaded("tls"))
+	srcaddr.s = sbuf;
+	if (msrp_tls_module_loaded)
 	{
 	{
 		memcpy(srcaddr.s, "msrps://", 8);
 		memcpy(srcaddr.s, "msrps://", 8);
 		srcaddr.s+=8;
 		srcaddr.s+=8;

+ 3 - 0
modules/msrp/msrp_mod.c

@@ -69,6 +69,7 @@ int msrp_auth_min_expires = 60;
 int msrp_auth_max_expires = 3600;
 int msrp_auth_max_expires = 3600;
 int msrp_timer_interval = 60;
 int msrp_timer_interval = 60;
 str msrp_use_path_addr = { 0 };
 str msrp_use_path_addr = { 0 };
+int msrp_tls_module_loaded = 0;
 
 
 static int msrp_frame_received(void *data);
 static int msrp_frame_received(void *data);
 sip_msg_t *msrp_fake_sipmsg(msrp_frame_t *mf);
 sip_msg_t *msrp_fake_sipmsg(msrp_frame_t *mf);
@@ -172,6 +173,8 @@ static int mod_init(void)
 		LM_WARN("\"tls\" module is not loaded. TLS is mandatory for"
 		LM_WARN("\"tls\" module is not loaded. TLS is mandatory for"
 			" MSRP Relays. To comply with RFC 4976 you must use"
 			" MSRP Relays. To comply with RFC 4976 you must use"
 			"  TLS.\n");
 			"  TLS.\n");
+	} else {
+		msrp_tls_module_loaded = 1;
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 3 - 1
modules/msrp/msrp_vars.c

@@ -36,6 +36,8 @@
 #include "msrp_parser.h"
 #include "msrp_parser.h"
 #include "msrp_vars.h"
 #include "msrp_vars.h"
 
 
+extern int msrp_tls_module_loaded;
+
 /**
 /**
  *
  *
  */
  */
@@ -274,7 +276,7 @@ int pv_get_msrp(sip_msg_t *msg,  pv_param_t *param, pv_value_t *res)
 				return pv_get_null(msg, param, res);
 				return pv_get_null(msg, param, res);
 			s.s = pv_get_buffer();
 			s.s = pv_get_buffer();
 			p = s.s;
 			p = s.s;
-			if (module_loaded("tls"))
+			if (msrp_tls_module_loaded)
 			{
 			{
 				memcpy(p, "msrps://", 8);
 				memcpy(p, "msrps://", 8);
 				p+=8;
 				p+=8;