瀏覽代碼

ims_registrar_scscf: fixing em_max_expires

(cherry picked from commit 3f38206d88af0fae4c64ee3072eb78ea68f813cb)
Dragos Vingarzan 11 月之前
父節點
當前提交
a97199e011

+ 13 - 13
src/modules/ims_registrar_scscf/config.c

@@ -31,19 +31,19 @@
 #include "config.h"
 #include "config.h"
 
 
 struct cfg_group_registrar default_registrar_cfg = {
 struct cfg_group_registrar default_registrar_cfg = {
-		3600,		   /* default_expires */
-		0,			   /* default_expires_range */
-		60,			   /* min_expires */
-		0,			   /* max_expires */
-		3600,		   /* emergency contact default expires */
-		60,			   /* emergency contact max expires */
-		0,			   /* emergency contact min expires */
-		0,			   /* max_contacts */
-		0,			   /* retry_after */
-		0,			   /* case_sensitive */
-		Q_UNSPECIFIED, /* default_q */
-		1,			   /* append_branches */
-		""			   /* realm_pref */
+		.default_expires = 3600,	/* default_expires */
+		.default_expires_range = 0, /* default_expires_range */
+		.min_expires = 60,			/* min_expires */
+		.max_expires = 600000,		/* max_expires */
+		.em_default_expires = 1800, /* emergency contact default expires */
+		.em_max_expires = 3600,		/* emergency contact max expires */
+		.em_min_expires = 0,		/* emergency contact min expires */
+		.max_contacts = 0,			/* max_contacts */
+		.retry_after = 0,			/* retry_after */
+		.case_sensitive = 0,		/* case_sensitive */
+		.default_q = Q_UNSPECIFIED, /* default_q */
+		.append_branches = 1,		/* append_branches */
+		.realm_pref = ""			/* realm_pref */
 };
 };
 
 
 void *registrar_cfg = &default_registrar_cfg;
 void *registrar_cfg = &default_registrar_cfg;

+ 1 - 1
src/modules/ims_registrar_scscf/ims_registrar_scscf_mod.c

@@ -284,7 +284,7 @@ static param_export_t params[] = {
 		{"max_expires", INT_PARAM, &default_registrar_cfg.max_expires},
 		{"max_expires", INT_PARAM, &default_registrar_cfg.max_expires},
 		{"em_default_expires", INT_PARAM,
 		{"em_default_expires", INT_PARAM,
 				&default_registrar_cfg.em_default_expires},
 				&default_registrar_cfg.em_default_expires},
-		{"em_min_expires", INT_PARAM, &default_registrar_cfg.em_max_expires},
+		{"em_max_expires", INT_PARAM, &default_registrar_cfg.em_max_expires},
 		{"em_min_expires", INT_PARAM, &default_registrar_cfg.em_min_expires},
 		{"em_min_expires", INT_PARAM, &default_registrar_cfg.em_min_expires},
 
 
 		{"default_q", INT_PARAM, &default_registrar_cfg.default_q},
 		{"default_q", INT_PARAM, &default_registrar_cfg.default_q},

+ 9 - 5
src/modules/ims_registrar_scscf/save.c

@@ -125,20 +125,24 @@ static inline int calc_contact_expires(
 						  : default_registrar_cfg.default_expires;
 						  : default_registrar_cfg.default_expires;
 		goto end;
 		goto end;
 	}
 	}
-	if(!sos_reg && r < default_registrar_cfg.min_expires) {
+	if(!sos_reg && r < default_registrar_cfg.min_expires
+			&& default_registrar_cfg.min_expires != 0) {
 		r = default_registrar_cfg.min_expires;
 		r = default_registrar_cfg.min_expires;
 		goto end;
 		goto end;
 	}
 	}
-	if(sos_reg && r < default_registrar_cfg.em_min_expires) {
+	if(sos_reg && r < default_registrar_cfg.em_min_expires
+			&& default_registrar_cfg.em_min_expires != 0) {
 		r = default_registrar_cfg.em_min_expires;
 		r = default_registrar_cfg.em_min_expires;
 		goto end;
 		goto end;
 	}
 	}
-	if(!sos_reg && r > default_registrar_cfg.max_expires) {
+	if(!sos_reg && r > default_registrar_cfg.max_expires
+			&& default_registrar_cfg.max_expires != 0) {
 		r = default_registrar_cfg.max_expires;
 		r = default_registrar_cfg.max_expires;
 		goto end;
 		goto end;
 	}
 	}
-	if(sos_reg && r > default_registrar_cfg.em_max_expires) {
-		r = default_registrar_cfg.em_min_expires;
+	if(sos_reg && r > default_registrar_cfg.em_max_expires
+			&& default_registrar_cfg.em_max_expires != 0) {
+		r = default_registrar_cfg.em_max_expires;
 		goto end;
 		goto end;
 	}
 	}
 end:
 end: