]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 60088 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Wed, 4 Apr 2007 16:40:01 +0000 (16:40 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 4 Apr 2007 16:40:01 +0000 (16:40 +0000)
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

channels/chan_sip.c

index 2230e71defb59dfe9d05d083197a50b6894ac7a7..78986abfc1fd0f7ca95ba0ca570751f6139dbfdf 100644 (file)
@@ -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;
 }