res_sorcery_realtime: fix bug when successful UPDATE is treated as failed
authorAlexei Gradinari <alex2grad@gmail.com>
Mon, 4 Jul 2016 21:38:57 +0000 (17:38 -0400)
committerAlexei Gradinari <alex2grad@gmail.com>
Thu, 7 Jul 2016 17:16:14 +0000 (12:16 -0500)
commitc832f100d9c019d85eed9219b2577d38c935c7b4
treed1ed02f12dbb2975718b27c9a75349798d62f3c7
parent9e10aa84969b3b6e57dde5a637c47f17f1fd4ef7
res_sorcery_realtime: fix bug when successful UPDATE is treated as failed

If the SQL UPDATE statement changes nothing then SQLRowCount returns 0.
This value should be treated as success.
But the function sorcery_realtime_update treats it as failed.

This bug was found using stress tests on PJSIP.
If there are 2 consecutive SIP REGISTER requests with the same contact data
during 1 second then res_pjsip_registrar adds contact location on 1st request
and tries to update contact location on 2nd.
The update fails and res_pjsip_registrar even removes correct contact location.

The test "object_update_uncreated" was removed from test_sorcery_realtime.c
because it's now a valid situation.

This patch also adds missing debug of extra SQL parameter.

ASTERISK-26172 #close

Change-Id: I05a7f3051455336c9dda29efc229decf86071303
res/res_config_odbc.c
res/res_sorcery_realtime.c
tests/test_sorcery_realtime.c