Author: mjordan Date: Wed Feb 11 11:11:41 2015 New Revision: 431673 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=431673 Log: channels/chan_sip: Fix RealTime error during SIP unregistration with MariaDB
When a SIP device that has its registration stored in RealTime unregisters, the entry for that device is updated with blank values, i.e., "", indicating that it is no longer registered. Unfortunately, one of those values that is 'blanked' is the device's port. If the column type for the port is not a string datatype (the recommended type is integer), an ODBC or database error will be thrown. MariaDB does not coerce empty strings to a valid integer value. This patch updates the query run from chan_sip such that it replaces the port value with a value of '0', as opposed to a blank value. This is the value that other database backends coerce the empty string ("") to already, and the handling of reading a RealTime registration value from a backend already anticipates receiving a port of '0' from the backends. ASTERISK-24772 #close Reported by: Richard Miller patches: chan_sip.diff uploaded by Richard Miller (License 5685) Modified: branches/11/channels/chan_sip.c Modified: branches/11/channels/chan_sip.c URL: http://svnview.digium.com/svn/asterisk/branches/11/channels/chan_sip.c?view=diff&rev=431673&r1=431672&r2=431673 ============================================================================== --- branches/11/channels/chan_sip.c (original) +++ branches/11/channels/chan_sip.c Wed Feb 11 11:11:41 2015 @@ -15720,7 +15720,7 @@ if (!sip_cfg.ignore_regexpire) { if (peer->rt_fromcontact && sip_cfg.peer_rtupdate) { - ast_update_realtime(tablename, "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "", "regseconds", "0", "regserver", "", "useragent", "", "lastms", "0", SENTINEL); + ast_update_realtime(tablename, "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "0", "regseconds", "0", "regserver", "", "useragent", "", "lastms", "0", SENTINEL); } else { ast_db_del("SIP/Registry", peer->name); ast_db_del("SIP/PeerMethods", peer->name); -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits