diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-27 16:31:55 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-27 16:31:55 +0000 |
commit | 08ef8d70d36766d51f7f056db46620ff3de1985b (patch) | |
tree | 8b4fdd428f10709c0696ce42351c7bdf6d7bd570 /channels | |
parent | 0a23b09bdd27cfd595fa8dc16d67dffc488f13a5 (diff) |
- Make sure handle_common_options return 1 when we found a common option
- Move uncommon (only global) option away from handle_common_options
Reported by rizzo. Thanks!
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@48980 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 7c19440e9..641dc2e7d 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -15216,6 +15216,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask ast_log(LOG_WARNING, "Unknown dtmf mode '%s' on line %d, using rfc2833\n", v->value, v->lineno); ast_set_flag(&flags[0], SIP_DTMF_RFC2833); } + res = 1; } else if (!strcasecmp(v->name, "nat")) { ast_set_flag(&mask[0], SIP_NAT); ast_clear_flag(&flags[0], SIP_NAT); @@ -15227,6 +15228,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask ast_set_flag(&flags[0], SIP_NAT_ALWAYS); else ast_set_flag(&flags[0], SIP_NAT_RFC3581); + res = 1; } else if (!strcasecmp(v->name, "canreinvite")) { ast_set_flag(&mask[0], SIP_REINVITE); ast_clear_flag(&flags[0], SIP_REINVITE); @@ -15248,6 +15250,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask } } } + res = 1; } else if (!strcasecmp(v->name, "insecure")) { ast_set_flag(&mask[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE); ast_clear_flag(&flags[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE); @@ -15280,6 +15283,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask ast_log(LOG_WARNING, "Unknown insecure mode '%s' on line %d\n", v->value, v->lineno); } } + res = 1; } else if (!strcasecmp(v->name, "progressinband")) { ast_set_flag(&mask[0], SIP_PROG_INBAND); ast_clear_flag(&flags[0], SIP_PROG_INBAND); @@ -15287,8 +15291,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask ast_set_flag(&flags[0], SIP_PROG_INBAND_YES); else if (strcasecmp(v->value, "never")) ast_set_flag(&flags[0], SIP_PROG_INBAND_NO); - } else if (!strcasecmp(v->name, "allowguest")) { - global_allowguest = ast_true(v->value) ? 1 : 0; + res = 1; } else if (!strcasecmp(v->name, "promiscredir")) { ast_set_flag(&mask[0], SIP_PROMISCREDIR); ast_set2_flag(&flags[0], ast_true(v->value), SIP_PROMISCREDIR); @@ -15296,26 +15299,33 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask } else if (!strcasecmp(v->name, "videosupport")) { ast_set_flag(&mask[1], SIP_PAGE2_VIDEOSUPPORT); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_VIDEOSUPPORT); + res = 1; } else if (!strcasecmp(v->name, "allowoverlap")) { ast_set_flag(&mask[1], SIP_PAGE2_ALLOWOVERLAP); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_ALLOWOVERLAP); + res = 1; } else if (!strcasecmp(v->name, "allowsubscribe")) { ast_set_flag(&mask[1], SIP_PAGE2_ALLOWSUBSCRIBE); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_ALLOWSUBSCRIBE); + res = 1; } else if (!strcasecmp(v->name, "t38pt_udptl")) { ast_set_flag(&mask[1], SIP_PAGE2_T38SUPPORT_UDPTL); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_T38SUPPORT_UDPTL); + res = 1; #ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS } else if (!strcasecmp(v->name, "t38pt_rtp")) { ast_set_flag(&mask[1], SIP_PAGE2_T38SUPPORT_RTP); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_T38SUPPORT_RTP); + res = 1; } else if (!strcasecmp(v->name, "t38pt_tcp")) { ast_set_flag(&mask[1], SIP_PAGE2_T38SUPPORT_TCP); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_T38SUPPORT_TCP); + res = 1; #endif } else if (!strcasecmp(v->name, "rfc2833compensate")) { ast_set_flag(&mask[1], SIP_PAGE2_RFC2833_COMPENSATE); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_RFC2833_COMPENSATE); + res = 1; } return res; @@ -16043,6 +16053,8 @@ static int reload_config(enum channelreloadreason reason) /* Create the interface list */ if (!strcasecmp(v->name, "context")) { ast_copy_string(default_context, v->value, sizeof(default_context)); + } else if (!strcasecmp(v->name, "allowguest")) { + global_allowguest = ast_true(v->value) ? 1 : 0; } else if (!strcasecmp(v->name, "realm")) { ast_copy_string(global_realm, v->value, sizeof(global_realm)); } else if (!strcasecmp(v->name, "useragent")) { |