[asterisk-commits] tilghman: trunk r137150 - in /trunk: ./ res/res_odbc.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun Aug 10 19:25:29 CDT 2008
Author: tilghman
Date: Sun Aug 10 19:25:28 2008
New Revision: 137150
URL: http://svn.digium.com/view/asterisk?view=rev&rev=137150
Log:
Merged revisions 137138 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r137138 | tilghman | 2008-08-10 19:20:38 -0500 (Sun, 10 Aug 2008) | 5 lines
Deallocate database connection handle on disconnect, as we allocate another
one on connect.
(closes issue #13271)
Reported by: dveiga
........
Modified:
trunk/ (props changed)
trunk/res/res_odbc.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/res/res_odbc.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_odbc.c?view=diff&rev=137150&r1=137149&r2=137150
==============================================================================
--- trunk/res/res_odbc.c (original)
+++ trunk/res/res_odbc.c Sun Aug 10 19:25:28 2008
@@ -754,16 +754,27 @@
static odbc_status odbc_obj_disconnect(struct odbc_obj *obj)
{
int res;
+ SQLINTEGER err;
+ short int mlen;
+ unsigned char msg[200], stat[10];
+
ast_mutex_lock(&obj->lock);
res = SQLDisconnect(obj->con);
if (res == ODBC_SUCCESS) {
- ast_log(LOG_WARNING, "res_odbc: disconnected %d from %s [%s]\n", res, obj->parent->name, obj->parent->dsn);
+ ast_log(LOG_DEBUG, "Disconnected %d from %s [%s]\n", res, obj->parent->name, obj->parent->dsn);
} else {
- ast_log(LOG_WARNING, "res_odbc: %s [%s] already disconnected\n",
- obj->parent->name, obj->parent->dsn);
- }
+ ast_log(LOG_DEBUG, "res_odbc: %s [%s] already disconnected\n", obj->parent->name, obj->parent->dsn);
+ }
+
+ if ((res = SQLFreeHandle(SQL_HANDLE_DBC, obj->con) == ODBC_SUCCESS)) {
+ ast_log(LOG_DEBUG, "Database handle deallocated\n");
+ } else {
+ SQLGetDiagRec(SQL_HANDLE_DBC, obj->con, 1, stat, &err, msg, 100, &mlen);
+ ast_log(LOG_WARNING, "Unable to deallocate database handle? %d errno=%d %s\n", res, (int)err, msg);
+ }
+
obj->up = 0;
ast_mutex_unlock(&obj->lock);
return ODBC_SUCCESS;
More information about the asterisk-commits
mailing list