Index: cdr/cdr_mysql.c =================================================================== RCS file: /usr/cvsroot/asterisk/cdr/cdr_mysql.c,v retrieving revision 1.7 diff -u -r1.7 cdr_mysql.c --- cdr/cdr_mysql.c 24 Jul 2003 17:45:32 -0000 1.7 +++ cdr/cdr_mysql.c 5 Aug 2003 16:06:46 -0000 @@ -94,7 +94,7 @@ struct ast_config *cfg; struct ast_variable *var; - char *hostname, *dbname, *dbuser, *password; + char *hostname, *dbname, *dbuser, *password, *unix_socket; cfg = ast_load(config); if (!cfg) { @@ -112,15 +112,16 @@ dbname = ast_variable_retrieve(cfg,"global","dbname"); dbuser = ast_variable_retrieve(cfg,"global","user"); password = ast_variable_retrieve(cfg,"global","password"); + unix_socket = ast_variable_retrieve(cfg,"global","socket"); ast_log(LOG_DEBUG,"cdr_mysql: got hostname of %s\n",hostname); ast_log(LOG_DEBUG,"cdr_mysql: got user of %s\n",dbuser); ast_log(LOG_DEBUG,"cdr_mysql: got dbname of %s\n",dbname); ast_log(LOG_DEBUG,"cdr_mysql: got password of %s\n",password); + ast_log(LOG_DEBUG,"cdr_mysql: got unix_socket of %s\n",unix_socket); if (hostname == NULL) { - ast_log(LOG_ERROR,"Database server hostname not specified.\n"); - return -1; + ast_log(LOG_DEBUG,"Database server hostname not specified.\n"); } if (dbuser == NULL) { @@ -137,11 +138,19 @@ ast_log(LOG_ERROR,"Database password not specified.\n"); return -1; } - + if (unix_socket == NULL) + { + ast_log(LOG_DEBUG,"Database unix_socket not specified.\n"); + } + if (unix_socket == NULL && hostname == NULL) + { + ast_log(LOG_ERROR,"Database hostname and unix_socket not specified.\n"); + return -1; + } mysql = mysql_init(NULL); - mysql = mysql_real_connect(mysql, hostname, dbuser, password, dbname, 0, NULL, 0); + mysql = mysql_real_connect(mysql, hostname, dbuser, password, dbname, 0, unix_socket, 0); if (mysql == NULL) { ast_log(LOG_ERROR, "Failed to connect to mysql database.\n"); @@ -164,7 +173,7 @@ struct ast_config *cfg; struct ast_variable *var; - char *hostname, *dbname, *password, *dbuser; + char *hostname, *dbname, *password, *dbuser, *unix_socket; mysql_close(mysql); @@ -185,15 +194,16 @@ dbname = ast_variable_retrieve(cfg,"global","dbname"); dbuser = ast_variable_retrieve(cfg,"global","user"); password = ast_variable_retrieve(cfg,"global","password"); + unix_socket = ast_variable_retrieve(cfg,"global","socket"); ast_log(LOG_DEBUG,"cdr_mysql: got hostname of %s\n",hostname); ast_log(LOG_DEBUG,"cdr_mysql: got dbname of %s\n",dbname); ast_log(LOG_DEBUG,"cdr_mysql: got dbuser of %s\n",dbuser); ast_log(LOG_DEBUG,"cdr_mysql: got password of %s\n",password); + ast_log(LOG_DEBUG,"cdr_mysql: got unix_socket of %s\n",unix_socket); if (hostname == NULL) { - ast_log(LOG_ERROR,"Database server hostname not specified.\n"); - return -1; + ast_log(LOG_DEBUG,"Database server hostname not specified.\n"); } if (dbname == NULL) { @@ -205,16 +215,24 @@ ast_log(LOG_ERROR,"Database dbuser not specified.\n"); return -1; } - if (password == NULL) { ast_log(LOG_ERROR,"Database password not specified.\n"); return -1; } + if (unix_socket == NULL) + { + ast_log(LOG_DEBUG,"Database unix_socket not specified.\n"); + } + if (unix_socket == NULL && hostname == NULL) + { + ast_log(LOG_ERROR,"Database hostname and unix_socket not specified.\n"); + return -1; + } mysql = mysql_init(NULL); - mysql = mysql_real_connect(mysql, hostname, dbuser, password, dbname, 0, NULL, 0); + mysql = mysql_real_connect(mysql, hostname, dbuser, password, dbname, 0, unix_socket, 0); if (mysql == NULL) { ast_log(LOG_ERROR, "Failed to connect to mysql database.\n"); Index: configs/cdr_mysql.conf.sample =================================================================== RCS file: /usr/cvsroot/asterisk/configs/cdr_mysql.conf.sample,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 cdr_mysql.conf.sample --- configs/cdr_mysql.conf.sample 12 Feb 2003 13:59:15 -0000 1.1.1.1 +++ configs/cdr_mysql.conf.sample 5 Aug 2003 16:06:46 -0000 @@ -3,3 +3,4 @@ ;dbname=asteriskcdrdb ;password=password ;user=asteriskcdruser +;socket=/var/run/mysqld/mysqld.sock