[svn-commits] trunk r31868 - /trunk/channels/chan_sip.c
svn-commits at lists.digium.com
svn-commits at lists.digium.com
Sat Jun 3 16:17:55 MST 2006
Author: rizzo
Date: Sat Jun 3 18:17:54 2006
New Revision: 31868
URL: http://svn.digium.com/view/asterisk?rev=31868&view=rev
Log:
some code simplifications using S_OR() to remove some if blocks
and duplicate code.
Modified:
trunk/channels/chan_sip.c
Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?rev=31868&r1=31867&r2=31868&view=diff
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Sat Jun 3 18:17:54 2006
@@ -6026,10 +6026,7 @@
/* 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 @@
}
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 @@
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 @@
/* 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 @@
}
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 @@
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 */
More information about the svn-commits
mailing list