阅读背景:

asterisk cdr写入mysql为空的解决办法

来源:互联网 

static int mysql_log(struct ast_cdr *cdr)
{
……
 db_reconnect:
    if ((!connected) && (hostname || dbsock) && dbuser && password && dbname && dbtable )
{
……
if (mysql_real_connect(&mysql, ast_str_buffer(hostname), ast_str_buffer(dbuser), ast_str_buffer(password), ast_str_buffer(dbname), dbport, dbsock && ast_str_strlen(dbsock) ? ast_str_buffer(dbsock) : NULL, ssl_ca ? CLIENT_SSL : 0)) {
            connected = 1;
            connect_time = time(NULL);
            records = 0;
            if (dbcharset) {
                ast_str_set(&sql1, 0, "SET NAMES '%s'", ast_str_buffer(dbcharset));
                mysql_real_query(&mysql, ast_str_buffer(sql1), ast_str_strlen(sql1));
                ast_debug(1, "SQL command as follows: %s\n", ast_str_buffer(sql1));
            }
  
        【新加代码处】
  
        } else {
            ast_log(LOG_ERROR, "Cannot connect to database server %s: (%d) %s\n", ast_str_buffer(hostname), mysql_errno(&mysql), mysql_error(&mysql));
            connected = 0;
        }
}
……
}static int mysql_log(struct ast_cdr *cdr)
{



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: