func_odbc: Fix connection deadlock.

The func_odbc module was modified to ensure that the
previous behavior of using a single database connection
was maintained. This was done by getting a single database
connection and holding on to it. With the new multiple
connection support in res_odbc this will actually starve
every other thread from getting access to the database as
it also maintains the previous behavior of having only
a single database connection.

This change disables the func_odbc specific behavior if
the res_odbc module is running with only a single database
connection active. The connection is only kept for the
duration of the request.

ASTERISK-26177 #close

Change-Id: I9bdbd8a300fb3233877735ad3fd07bce38115b7f
This commit is contained in:
Joshua Colp
2016-07-10 21:08:28 -03:00
parent 8019f32129
commit 17efed6cf7
3 changed files with 37 additions and 0 deletions

View File

@@ -243,4 +243,9 @@ int ast_odbc_text2isolation(const char *txt);
*/
const char *ast_odbc_isolation2text(int iso);
/*!
* \brief Return the current configured maximum number of connections for a class
*/
unsigned int ast_odbc_get_max_connections(const char *name);
#endif /* _ASTERISK_RES_ODBC_H */