diff options
author | Russell Bryant <russell@russellbryant.com> | 2007-04-04 16:40:01 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2007-04-04 16:40:01 +0000 |
commit | bb53ef9d3210d2e743b7e1290422d731679a2a37 (patch) | |
tree | 641bf95bf16435db04f21287c85bd1c67ab0ffd9 | |
parent | e9e26370be58855161621951568b7629fa071663 (diff) |
Merged revisions 60088 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r60088 | russell | 2007-04-04 11:39:04 -0500 (Wed, 04 Apr 2007) | 12 lines
Merged revisions 60083 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r60083 | russell | 2007-04-04 11:37:04 -0500 (Wed, 04 Apr 2007) | 4 lines
Fix the return value of handle_common_options() so that it always properly
indicates whether it handled the option or not.
(issue #9455, reported by Netview, fixed by me)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_sip.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 2230e71de..78986abfc 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -16146,24 +16146,20 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * */ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v) { - int res = 0; + int res = 1; if (!strcasecmp(v->name, "trustrpid")) { ast_set_flag(&mask[0], SIP_TRUSTRPID); ast_set2_flag(&flags[0], ast_true(v->value), SIP_TRUSTRPID); - res = 1; } else if (!strcasecmp(v->name, "sendrpid")) { ast_set_flag(&mask[0], SIP_SENDRPID); ast_set2_flag(&flags[0], ast_true(v->value), SIP_SENDRPID); - res = 1; } else if (!strcasecmp(v->name, "g726nonstandard")) { ast_set_flag(&mask[0], SIP_G726_NONSTANDARD); ast_set2_flag(&flags[0], ast_true(v->value), SIP_G726_NONSTANDARD); - res = 1; } else if (!strcasecmp(v->name, "useclientcode")) { ast_set_flag(&mask[0], SIP_USECLIENTCODE); ast_set2_flag(&flags[0], ast_true(v->value), SIP_USECLIENTCODE); - res = 1; } else if (!strcasecmp(v->name, "dtmfmode")) { ast_set_flag(&mask[0], SIP_DTMF); ast_clear_flag(&flags[0], SIP_DTMF); @@ -16179,7 +16175,6 @@ 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); @@ -16191,7 +16186,6 @@ 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); @@ -16213,7 +16207,6 @@ 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); @@ -16232,7 +16225,6 @@ 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); @@ -16240,15 +16232,12 @@ 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); - 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); - res = 1; } 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, "textsupport")) { ast_set_flag(&mask[1], SIP_PAGE2_TEXTSUPPORT); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_TEXTSUPPORT); @@ -16256,34 +16245,28 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask } 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; } else if (!strcasecmp(v->name, "buggymwi")) { ast_set_flag(&mask[1], SIP_PAGE2_BUGGY_MWI); ast_set2_flag(&flags[1], ast_true(v->value), SIP_PAGE2_BUGGY_MWI); - res = 1; - } + } else + res = 0; return res; } |