Skip to content

Commit

Permalink
registrar: allow taking expires value from xavp_cfg expires field
Browse files Browse the repository at this point in the history
  • Loading branch information
miconda committed Dec 21, 2020
1 parent 58468c3 commit 132c9d0
Showing 1 changed file with 23 additions and 14 deletions.
37 changes: 23 additions & 14 deletions src/modules/registrar/sip_msg.c
Expand Up @@ -246,27 +246,36 @@ contact_t* get_next_contact(contact_t* _c)
void calc_contact_expires(struct sip_msg* _m, param_t* _ep, int* _e, int novariation)
{
int range = 0;
sr_xavp_t *vavp = NULL;
str xename = str_init("expires");

if (!_ep || !_ep->body.len) {
*_e = get_expires_hf(_m);
if (reg_xavp_cfg.s != NULL) {
vavp = xavp_get_child_with_ival(&reg_xavp_cfg, &xename);
}

if ( *_e < 0 ) {
*_e = cfg_get(registrar, registrar_cfg, default_expires);
range = cfg_get(registrar, registrar_cfg, default_expires_range);
} else {
range = cfg_get(registrar, registrar_cfg, expires_range);
}
if (vavp != NULL && vavp->val.v.i >= 0) {
*_e = vavp->val.v.i;
} else {
if (str2int(&_ep->body, (unsigned int*)_e) < 0) {
*_e = cfg_get(registrar, registrar_cfg, default_expires);
range = cfg_get(registrar, registrar_cfg, default_expires_range);
if (!_ep || !_ep->body.len) {
*_e = get_expires_hf(_m);

if ( *_e < 0 ) {
*_e = cfg_get(registrar, registrar_cfg, default_expires);
range = cfg_get(registrar, registrar_cfg, default_expires_range);
} else {
range = cfg_get(registrar, registrar_cfg, expires_range);
}
} else {
range = cfg_get(registrar, registrar_cfg, expires_range);
if (str2int(&_ep->body, (unsigned int*)_e) < 0) {
*_e = cfg_get(registrar, registrar_cfg, default_expires);
range = cfg_get(registrar, registrar_cfg, default_expires_range);
} else {
range = cfg_get(registrar, registrar_cfg, expires_range);
}
}
}

if ( *_e != 0 )
{
if ( *_e != 0 ) {
if (*_e < cfg_get(registrar, registrar_cfg, min_expires)) {
if(reg_min_expires_mode) {
rerrno = R_LOW_EXP;
Expand Down

0 comments on commit 132c9d0

Please sign in to comment.