[asterisk-commits] trunk r29315 - /trunk/channels/chan_sip.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Sun May 21 19:02:58 MST 2006
Author: rizzo
Date: Sun May 21 21:02:57 2006
New Revision: 29315
URL: http://svn.digium.com/view/asterisk?rev=29315&view=rev
Log:
simplify register_peer_exten() removing some duplicated 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=29315&r1=29314&r2=29315&view=diff
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Sun May 21 21:02:57 2006
@@ -1946,32 +1946,32 @@
{
char multi[256];
char *stringp, *ext, *context;
- if (!ast_strlen_zero(global_regcontext)) {
+
+ /* XXX note that global_regcontext is both a global 'enable' flag and
+ * the name of the global regexten context, if not specified
+ * individually.
+ */
+ if (ast_strlen_zero(global_regcontext))
+ return;
ast_copy_string(multi, S_OR(peer->regexten, peer->name), sizeof(multi));
stringp = multi;
- while((ext = strsep(&stringp, "&"))) {
- if((context = strchr(ext, '@'))) {
- context++;
+ while ((ext = strsep(&stringp, "&"))) {
+ if ((context = strchr(ext, '@'))) {
+ *context++ = '\0'; /* split ext at context */
if (!ast_context_find(context)) {
ast_log(LOG_WARNING, "Context %s must exist in regcontext= in sip.conf!\n", context);
continue;
}
- ext = strsep(&ext, "@");
- if (onoff)
- ast_add_extension(context, 1, ext, 1, NULL, NULL, "Noop",
- ast_strdup(peer->name), free, "SIP");
- else
- ast_context_remove_extension(context, ext, 1, NULL);
} else {
+ context = global_regcontext;
+ }
if (onoff)
- ast_add_extension(global_regcontext, 1, ext, 1, NULL, NULL, "Noop",
- ast_strdup(peer->name), free, "SIP");
+ ast_add_extension(context, 1, ext, 1, NULL, NULL, "Noop",
+ ast_strdup(peer->name), free, "SIP");
else
- ast_context_remove_extension(global_regcontext, ext, 1, NULL);
- }
- }
- }
+ ast_context_remove_extension(context, ext, 1, NULL);
+ }
}
/*! \brief Destroy peer object from memory */
More information about the asterisk-commits
mailing list