Skip to content

Commit

Permalink
mid_registrar: Simplify lookup() code
Browse files Browse the repository at this point in the history
  • Loading branch information
liviuchircu committed Jul 9, 2020
1 parent 9643221 commit eb018ad
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
17 changes: 9 additions & 8 deletions lib/reg/lookup.c
Expand Up @@ -65,16 +65,14 @@ lookup_rc lookup(struct sip_msg *req, udomain_t *d, str *sflags, str *aor_uri,
str sip_instance = STR_NULL, call_id = STR_NULL;
regex_t ua_re;

if (!ZSTRP(sflags)) {
if (parse_lookup_flags(sflags, &flags, &ua_re, &regexp_flags,
&max_latency) != 0) {
LM_ERR("failed to parse flags: %.*s\n", sflags->len, sflags->s);
return LOOKUP_ERROR;
}

single_branch = flags & REG_LOOKUP_NOBRANCH_FLAG;
if (parse_lookup_flags(sflags, &flags, &ua_re, &regexp_flags,
&max_latency) != 0) {
LM_ERR("failed to parse flags: %.*s\n", sflags->len, sflags->s);
return LOOKUP_ERROR;
}

single_branch = flags & REG_LOOKUP_NOBRANCH_FLAG;

if (flags & REG_BRANCH_AOR_LOOKUP_FLAG) {
/* extract all the branches for further usage */
while (
Expand Down Expand Up @@ -346,6 +344,9 @@ int parse_lookup_flags(const str *input, unsigned int *flags, regex_t *ua_re,
int i, re_len = 0;

*flags = 0;
if (ZSTRP(input))
return 0;

for (i = 0; i < input->len; i++) {
switch (input->s[i]) {
case 'm': *flags |= REG_LOOKUP_METHODFILTER_FLAG; break;
Expand Down
14 changes: 6 additions & 8 deletions modules/mid_registrar/lookup.c
Expand Up @@ -62,16 +62,14 @@ int mid_reg_lookup(struct sip_msg *req, udomain_t *d, str *sflags, str *uri)
if (reg_mode == MID_REG_THROTTLE_AOR)
return lookup(req, d, sflags, uri, 0, 1);

if (!ZSTRP(sflags)) {
if (parse_lookup_flags(sflags, &flags, &ua_re, &regexp_flags,
&max_latency) != 0) {
LM_ERR("failed to parse flags: %.*s\n", sflags->len, sflags->s);
return LOOKUP_ERROR;
}

ruri_is_pushed = flags & REG_LOOKUP_NO_RURI_FLAG;
if (parse_lookup_flags(sflags, &flags, &ua_re, &regexp_flags,
&max_latency) != 0) {
LM_ERR("failed to parse flags: %.*s\n", sflags->len, sflags->s);
return LOOKUP_ERROR;
}

ruri_is_pushed = flags & REG_LOOKUP_NO_RURI_FLAG;

if (!uri)
uri = GET_RURI(req);

Expand Down

0 comments on commit eb018ad

Please sign in to comment.