[asterisk-commits] russell: trunk r370534 - in /trunk: CHANGES addons/app_mysql.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun Jul 29 19:05:29 CDT 2012
Author: russell
Date: Sun Jul 29 19:05:25 2012
New Revision: 370534
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=370534
Log:
Allow specifying a port number for the MySQL server.
This patch allows you to specify a port number for the MySQL server.
It's useful if a MySQL server is running on a non-standard port.
Even though this module is deprecated in favor of func_odbc, someone
asked for this feature and it seems pretty harmless to add.
It has been tested using a number of combinations of with/without a
port number specified in the dialplan and changing the port number
for mysqld.
Modified:
trunk/CHANGES
trunk/addons/app_mysql.c
Modified: trunk/CHANGES
URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=370534&r1=370533&r2=370534
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Sun Jul 29 19:05:25 2012
@@ -110,6 +110,11 @@
* Added 'm' option, which stores a copy of the recording as a voicemail in the
indicated mailboxes.
+MySQL
+-------------------
+ * The connect action in app_mysql now allows you to specify a port number to
+ connect to. This is useful if you run a MySQL server on a non-standard
+ port number.
OSP Applications
-------------------
Modified: trunk/addons/app_mysql.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/app_mysql.c?view=diff&rev=370534&r1=370533&r2=370534
==============================================================================
--- trunk/addons/app_mysql.c (original)
+++ trunk/addons/app_mysql.c Sun Jul 29 19:05:25 2012
@@ -59,7 +59,7 @@
"Syntax:\n"
" MYSQL(Set timeout <num>)\n"
" Set the connection timeout, in seconds.\n"
-" MYSQL(Connect connid dhhost dbuser dbpass dbname [dbcharset])\n"
+" MYSQL(Connect connid dhhost[:dbport] dbuser dbpass dbname [dbcharset])\n"
" Connects to a database. Arguments contain standard MySQL parameters\n"
" passed to function mysql_real_connect. Optional parameter dbcharset\n"
" defaults to 'latin1'. Connection identifer returned in ${connid}\n"
@@ -322,6 +322,8 @@
MYSQL *mysql;
int timeout;
const char *ctimeout;
+ unsigned int port = 0;
+ char *port_str;
AST_NONSTANDARD_APP_ARGS(args, data, ' ');
@@ -348,7 +350,15 @@
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, args.dbcharset);
}
- if (! mysql_real_connect(mysql, args.dbhost, args.dbuser, args.dbpass, args.dbname, 0, NULL,
+ if ((port_str = strchr(args.dbhost, ':'))) {
+ *port_str++ = '\0';
+ if (sscanf(port_str, "%u", &port) != 1) {
+ ast_log(LOG_WARNING, "Invalid port: '%s'\n", port_str);
+ port = 0;
+ }
+ }
+
+ if (!mysql_real_connect(mysql, args.dbhost, args.dbuser, args.dbpass, args.dbname, port, NULL,
#ifdef CLIENT_MULTI_STATEMENTS
CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS
#elif defined(CLIENT_MULTI_QUERIES)
More information about the asterisk-commits
mailing list