FS-7228 - Max Register Refresh before the Register is challenged for credentials
This commit is contained in:
parent
9e15c4e5b5
commit
5db8a0c16b
|
@ -639,6 +639,7 @@ struct sofia_profile {
|
|||
unsigned int mndlb;
|
||||
uint32_t max_calls;
|
||||
uint32_t nonce_ttl;
|
||||
uint32_t max_auth_validity;
|
||||
nua_t *nua;
|
||||
switch_memory_pool_t *pool;
|
||||
su_root_t *s_root;
|
||||
|
|
|
@ -4971,6 +4971,8 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name)
|
|||
}
|
||||
} else if (!strcasecmp(var, "nonce-ttl")) {
|
||||
profile->nonce_ttl = atoi(val);
|
||||
} else if (!strcasecmp(var, "max-auth-validity")) {
|
||||
profile->max_auth_validity = atoi(val);
|
||||
} else if (!strcasecmp(var, "accept-blind-reg")) {
|
||||
if (switch_true(val)) {
|
||||
sofia_set_pflag(profile, PFLAG_BLIND_REG);
|
||||
|
@ -5390,6 +5392,11 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name)
|
|||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting nonce TTL to 60 seconds\n");
|
||||
profile->nonce_ttl = 60;
|
||||
}
|
||||
|
||||
if (!profile->max_auth_validity) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting MAX Auth Validity to 0 Attempts\n");
|
||||
profile->max_auth_validity = 0;
|
||||
}
|
||||
|
||||
if (!profile->sdp_username) {
|
||||
profile->sdp_username = switch_core_strdup(profile->pool, "FreeSWITCH");
|
||||
|
|
|
@ -2726,7 +2726,7 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile,
|
|||
free(sql);
|
||||
|
||||
//if (!sofia_glue_execute_sql2str(profile, profile->dbh_mutex, sql, np, nplen)) {
|
||||
if (zstr(np)) {
|
||||
if (zstr(np) || (profile->max_auth_validity != 0 && cb.last_nc >= profile->max_auth_validity )) {
|
||||
sql = switch_mprintf("delete from sip_authentication where nonce='%q'", nonce);
|
||||
sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
|
||||
ret = AUTH_STALE;
|
||||
|
|
Loading…
Reference in New Issue