aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-18 21:47:07 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-18 21:47:07 +0000
commit1d1a3c73c9879f0b6715e08050a1fc959c3c7372 (patch)
treee10c3492e36aefbd5e716ce1aeec6ec599c71961 /channels
parent2a28df3b08e5c321d50a718b752ca2f0b53ec90b (diff)
Merged revisions 247787 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r247787 | tilghman | 2010-02-18 15:42:53 -0600 (Thu, 18 Feb 2010) | 17 lines If the peer record is from realtime, it could be set to 0, due to MySQL not representing NULL well in integer columns. NULL means the value is not specified for the column, which normally means the driver uses whatever is the default value. However, on MySQL, placing a NULL in either a float or integer column results in a retrieval of the 0 value. Hence, users get an errant error on load. This patch suppresses that error and makes the value as if it was not there. Note that this cannot be done in the realtime driver, because the lack of difference between NULL and 0 can only be intepreted correctly by the driver itself. If we did it in the realtime driver, then it would be effectively impossible to set any realtime field to 0, because it would act as if the field were unspecified and possibly take on a different value. (closes issue #16683) Reported by: wdoekes ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@247789 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 55d5efc77..eb0a558eb 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -21955,7 +21955,12 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
} else if (!strcasecmp(v->name, "port")) {
peer->portinuri = 1;
if (!(port = port_str2int(v->value, 0))) {
- ast_log(LOG_WARNING, "Invalid peer port configuration at line %d : %s\n", v->lineno, v->value);
+ if (realtime) {
+ /* If stored as integer, could be 0 for some DBs (notably MySQL) */
+ peer->portinuri = 0;
+ } else {
+ ast_log(LOG_WARNING, "Invalid peer port configuration at line %d : %s\n", v->lineno, v->value);
+ }
}
} else if (!strcasecmp(v->name, "callingpres")) {
peer->callingpres = ast_parse_caller_presentation(v->value);