mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78826 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -15683,10 +15683,28 @@ static struct ast_channel *sip_request_call(const char *type, int format, void *
|
|||||||
*/
|
*/
|
||||||
static void set_insecure_flags(struct ast_flags *flags, const char *value, int lineno)
|
static void set_insecure_flags(struct ast_flags *flags, const char *value, int lineno)
|
||||||
{
|
{
|
||||||
if (!strcasecmp(value, "very"))
|
static int dep_insecure_very = 0;
|
||||||
|
static int dep_insecure_yes = 0;
|
||||||
|
if (!strcasecmp(value, "very")) {
|
||||||
ast_set_flag(flags, SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
ast_set_flag(flags, SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
||||||
else if (ast_true(value))
|
if(!dep_insecure_very) {
|
||||||
|
if(lineno != -1)
|
||||||
|
ast_log(LOG_WARNING, "insecure=very at line %d is deprecated; use insecure=port,invite instead\n", lineno);
|
||||||
|
else
|
||||||
|
ast_log(LOG_WARNING, "insecure=very is deprecated; use insecure=port,invite instead\n");
|
||||||
|
dep_insecure_very = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ast_true(value)) {
|
||||||
ast_set_flag(flags, SIP_INSECURE_PORT);
|
ast_set_flag(flags, SIP_INSECURE_PORT);
|
||||||
|
if(!dep_insecure_yes) {
|
||||||
|
if(lineno != -1)
|
||||||
|
ast_log(LOG_WARNING, "insecure=%s at line %d is deprecated; use insecure=port instead\n", value, lineno);
|
||||||
|
else
|
||||||
|
ast_log(LOG_WARNING, "insecure=%s is deprecated; use insecure=port instead\n", value);
|
||||||
|
dep_insecure_yes = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (!ast_false(value)) {
|
else if (!ast_false(value)) {
|
||||||
char buf[64];
|
char buf[64];
|
||||||
char *word, *next;
|
char *word, *next;
|
||||||
@@ -15713,8 +15731,6 @@ static void set_insecure_flags(struct ast_flags *flags, const char *value, int l
|
|||||||
static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v)
|
static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v)
|
||||||
{
|
{
|
||||||
int res = 1;
|
int res = 1;
|
||||||
static int dep_insecure_very = 0;
|
|
||||||
static int dep_insecure_yes = 0;
|
|
||||||
|
|
||||||
if (!strcasecmp(v->name, "trustrpid")) {
|
if (!strcasecmp(v->name, "trustrpid")) {
|
||||||
ast_set_flag(&mask[0], SIP_TRUSTRPID);
|
ast_set_flag(&mask[0], SIP_TRUSTRPID);
|
||||||
@@ -15757,39 +15773,28 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask
|
|||||||
} else if (!strcasecmp(v->name, "canreinvite")) {
|
} else if (!strcasecmp(v->name, "canreinvite")) {
|
||||||
ast_set_flag(&mask[0], SIP_REINVITE);
|
ast_set_flag(&mask[0], SIP_REINVITE);
|
||||||
ast_clear_flag(&flags[0], SIP_REINVITE);
|
ast_clear_flag(&flags[0], SIP_REINVITE);
|
||||||
set_insecure_flags(flags, v->value, v->lineno);
|
if(ast_true(v->value)) {
|
||||||
|
ast_set_flag(&flags[0], SIP_CAN_REINVITE | SIP_CAN_REINVITE_NAT);
|
||||||
|
} else if (!ast_false(v->value)) {
|
||||||
|
char buf[64];
|
||||||
|
char *word, *next = buf;
|
||||||
|
|
||||||
|
ast_copy_string(buf, v->value, sizeof(buf));
|
||||||
|
while ((word = strsep(&next, ","))) {
|
||||||
|
if(!strcasecmp(word, "update")) {
|
||||||
|
ast_set_flag(&flags[0], SIP_REINVITE_UPDATE | SIP_CAN_REINVITE);
|
||||||
|
} else if(!strcasecmp(word, "nonat")) {
|
||||||
|
ast_set_flag(&flags[0], SIP_CAN_REINVITE);
|
||||||
|
ast_clear_flag(&flags[0], SIP_CAN_REINVITE_NAT);
|
||||||
|
} else {
|
||||||
|
ast_log(LOG_WARNING, "Unknown canreinvite mode '%s' on line %d\n", v->value, v->lineno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (!strcasecmp(v->name, "insecure")) {
|
} else if (!strcasecmp(v->name, "insecure")) {
|
||||||
ast_set_flag(&mask[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
ast_set_flag(&mask[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
||||||
ast_clear_flag(&flags[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
ast_clear_flag(&flags[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
||||||
if (!strcasecmp(v->value, "very")) {
|
set_insecure_flags(flags, v->value, v->lineno);
|
||||||
ast_set_flag(&flags[0], SIP_INSECURE_PORT | SIP_INSECURE_INVITE);
|
|
||||||
if (!dep_insecure_very) {
|
|
||||||
ast_log(LOG_WARNING, "insecure=very at line %d is deprecated; use insecure=port,invite instead\n", v->lineno);
|
|
||||||
dep_insecure_very = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (ast_true(v->value)) {
|
|
||||||
ast_set_flag(&flags[0], SIP_INSECURE_PORT);
|
|
||||||
if (!dep_insecure_yes) {
|
|
||||||
ast_log(LOG_WARNING, "insecure=%s at line %d is deprecated; use insecure=port instead\n", v->value, v->lineno);
|
|
||||||
dep_insecure_yes = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!ast_false(v->value)) {
|
|
||||||
char buf[64];
|
|
||||||
char *word, *next;
|
|
||||||
|
|
||||||
ast_copy_string(buf, v->value, sizeof(buf));
|
|
||||||
next = buf;
|
|
||||||
while ((word = strsep(&next, ","))) {
|
|
||||||
if (!strcasecmp(word, "port"))
|
|
||||||
ast_set_flag(&flags[0], SIP_INSECURE_PORT);
|
|
||||||
else if (!strcasecmp(word, "invite"))
|
|
||||||
ast_set_flag(&flags[0], SIP_INSECURE_INVITE);
|
|
||||||
else
|
|
||||||
ast_log(LOG_WARNING, "Unknown insecure mode '%s' on line %d\n", v->value, v->lineno);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (!strcasecmp(v->name, "progressinband")) {
|
} else if (!strcasecmp(v->name, "progressinband")) {
|
||||||
ast_set_flag(&mask[0], SIP_PROG_INBAND);
|
ast_set_flag(&mask[0], SIP_PROG_INBAND);
|
||||||
ast_clear_flag(&flags[0], SIP_PROG_INBAND);
|
ast_clear_flag(&flags[0], SIP_PROG_INBAND);
|
||||||
|
Reference in New Issue
Block a user