summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@icir.org>2006-06-03 23:17:54 +0000
committerLuigi Rizzo <rizzo@icir.org>2006-06-03 23:17:54 +0000
commitd18e3635233f4ff32dff19c483a96b5276c73c4b (patch)
tree49e131d6dde82df98fd4652c7547c4ff0e4a0048 /channels
parentec46b5a4ce9e6fe5cc2e68cb5fe70dee9e039cae (diff)
some code simplifications using S_OR() to remove some if blocks
and duplicate code. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@31868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c46
1 files changed, 16 insertions, 30 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 0f4a6b83c..734e44923 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6026,10 +6026,7 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
/* Fromdomain is what we are registering to, regardless of actual
host name from SRV */
- if (!ast_strlen_zero(p->fromdomain))
- snprintf(addr, sizeof(addr), "sip:%s", p->fromdomain);
- else
- snprintf(addr, sizeof(addr), "sip:%s", r->hostname);
+ snprintf(addr, sizeof(addr), "sip:%s", S_OR(p->fromdomain, r->hostname));
ast_string_field_set(p, uri, addr);
p->branch ^= ast_random();
@@ -7141,11 +7138,11 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
}
from += 4;
from = strsep(&from, ";");
- if ((a = strchr(from, '@'))) {
- *a = '\0';
- ast_string_field_set(p, fromdomain, a + 1);
- } else
- ast_string_field_set(p, fromdomain, from);
+ if ((a = strchr(from, '@')))
+ *a++ = '\0';
+ else
+ a = from; /* just a domain */
+ ast_string_field_set(p, fromdomain, a);
}
/* Skip any options and find the domain */
@@ -7371,12 +7368,10 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
if ((ptr = strchr(refer_to, '@'))) { /* Separate domain */
char *urioption;
- *ptr = '\0';
- ptr++;
- if ((urioption = strchr(ptr, ';'))) {
- *urioption = '\0';
- urioption++;
- }
+
+ *ptr++ = '\0';
+ if ((urioption = strchr(ptr, ';')))
+ *urioption++ = '\0';
/* Save the domain for the dial plan */
strncpy(referdata->refer_to_domain, ptr, sizeof(referdata->refer_to_domain));
if (urioption)
@@ -7397,12 +7392,8 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
/* By default, use the context in the channel sending the REFER */
if (ast_strlen_zero(transfer_context)) {
- if (!ast_strlen_zero(transferer->owner->macrocontext))
- transfer_context=transferer->owner->macrocontext;
- else if (ast_strlen_zero(transferer->context))
- transfer_context = default_context;
- else
- transfer_context = transferer->context;
+ transfer_context = S_OR(transferer->owner->macrocontext,
+ S_OR(transferer->context, default_context));
}
strncpy(referdata->refer_to_context, transfer_context, sizeof(referdata->refer_to_context));
@@ -7449,8 +7440,7 @@ static int get_also_info(struct sip_pvt *p, struct sip_request *oreq)
}
c += 4;
if ((a = strchr(c, '@'))) { /* Separate Domain */
- *a = '\0';
- a++;
+ *a++ = '\0';
ast_copy_string(referdata->refer_to_domain, a, sizeof(referdata->refer_to_domain));
}
@@ -7464,13 +7454,9 @@ static int get_also_info(struct sip_pvt *p, struct sip_request *oreq)
transfer_context = pbx_builtin_getvar_helper(p->owner, "TRANSFER_CONTEXT");
/* By default, use the context in the channel sending the REFER */
- if (!transfer_context || ast_strlen_zero(transfer_context)) {
- if (!ast_strlen_zero(p->owner->macrocontext))
- transfer_context = p->owner->macrocontext;
- else if (ast_strlen_zero(p->context))
- transfer_context = default_context;
- else
- transfer_context = p->context;
+ if (ast_strlen_zero(transfer_context)) {
+ transfer_context = S_OR(p->owner->macrocontext,
+ S_OR(p->context, default_context));
}
if (ast_exists_extension(NULL, transfer_context, c, 1, NULL)) {
/* This is a blind transfer */