[svn-commits] tilghman: branch 1.6.1 r692 - /branches/1.6.1/res/res_config_mysql.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Nov 12 13:35:48 CST 2008


Author: tilghman
Date: Wed Nov 12 13:35:47 2008
New Revision: 692

URL: http://svn.digium.com/view/asterisk-addons?view=rev&rev=692
Log:
Remove portions of API that aren't in Asterisk-1.6.1

Modified:
    branches/1.6.1/res/res_config_mysql.c

Modified: branches/1.6.1/res/res_config_mysql.c
URL: http://svn.digium.com/view/asterisk-addons/branches/1.6.1/res/res_config_mysql.c?view=diff&rev=692&r1=691&r2=692
==============================================================================
--- branches/1.6.1/res/res_config_mysql.c (original)
+++ branches/1.6.1/res/res_config_mysql.c Wed Nov 12 13:35:47 2008
@@ -652,133 +652,6 @@
 	return (int)numrows;
 }
 
-#define ESCAPE_STRING(buf, var) \
-	do { \
-		size_t size; \
-		if ((size = strlen(var)) * 2 + 1 > (buf)->len) { \
-			ast_str_make_space(&(buf), size * 2 + 1); \
-		} \
-		mysql_real_escape_string(&dbh->handle, (buf)->str, var, size); \
-	} while (0)
-
-static int update2_mysql(const char *database, const char *tablename, va_list ap)
-{
-	struct mysql_conn *dbh;
-	my_ulonglong numrows;
-	int first = 1;
-	const char *newparam, *newval;
-	struct ast_str *sql = ast_str_thread_get(&sql_buf, 100), *buf = ast_str_thread_get(&scratch_buf, 100);
-	struct ast_str *where = ast_str_thread_get(&sql2_buf, 100);
-	struct tables *table;
-	struct columns *column = NULL;
-
-	if (!tablename) {
-		ast_log(LOG_WARNING, "MySQL RealTime: No table specified.\n");
-		return -1;
-	}
-
-	if (!(dbh = find_database(database, 1))) {
-		ast_log(LOG_ERROR, "Invalid database specified: %s\n", database);
-		return -1;
-	}
-
-	if (!(table = find_table(database, tablename))) {
-		ast_log(LOG_ERROR, "Table '%s' does not exist!!\n", tablename);
-		release_database(dbh);
-		return -1;
-	}
-
-	if (!sql || !buf || !where) {
-		release_database(dbh);
-		release_table(table);
-		return -1;
-	}
-
-	ast_str_set(&sql, 0, "UPDATE %s SET", tablename);
-	ast_str_set(&where, 0, "WHERE");
-
-	/* Must connect to the server before anything else, as the escape function requires the mysql handle. */
-	if (!mysql_reconnect(dbh)) {
-		release_table(table);
-		release_database(dbh);
-		return -1;
-	}
-
-	while ((newparam = va_arg(ap, const char *))) {
-		if (!(column = find_column(table, newparam))) {
-			ast_log(LOG_ERROR, "Updating on column '%s', but that column does not exist within the table '%s'!\n", newparam, tablename);
-			release_table(table);
-			release_database(dbh);
-			return -1;
-		}
-		if (!(newval = va_arg(ap, const char *))) {
-			ast_log(LOG_ERROR, "Invalid arguments: no value specified for column '%s' on '%s@%s'\n", newparam, tablename, database);
-			release_table(table);
-			release_database(dbh);
-			return -1;
-		}
-		ESCAPE_STRING(buf, newval);
-		ast_str_append(&where, 0, "%s %s='%s'", first ? "" : " AND", newparam, buf->str);
-		first = 0;
-
-		/* If the column length isn't long enough, give a chance to lengthen it. */
-		if (strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0) {
-			internal_require(database, tablename, newparam, RQ_CHAR, buf->used, SENTINEL);
-		}
-	}
-
-	first = 1;
-	while ((newparam = va_arg(ap, const char *))) {
-		if (!(newval = va_arg(ap, const char *))) {
-			ast_log(LOG_ERROR, "Invalid arguments: no value specified for column '%s' on '%s@%s'\n", newparam, tablename, database);
-			release_table(table);
-			release_database(dbh);
-			return -1;
-		}
-
-		/* If the column is not within the table, then skip it */
-		if (!(column = find_column(table, newparam))) {
-			ast_log(LOG_WARNING, "Attempted to update column '%s' in table '%s', but column does not exist!\n", newparam, tablename);
-			continue;
-		}
-
-		ESCAPE_STRING(buf, newval);
-		ast_str_append(&sql, 0, "%s %s = '%s'", first ? "" : ",", newparam, buf->str);
-
-		/* If the column length isn't long enough, give a chance to lengthen it. */
-		if (strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0) {
-			internal_require(database, tablename, newparam, RQ_CHAR, strlen(newval), SENTINEL);
-		}
-	}
-	va_end(ap);
-	release_table(table);
-
-	ast_str_append(&sql, 0, " %s", where->str);
-
-	ast_debug(1, "MySQL RealTime: Update SQL: %s\n", sql->str);
-
-	/* Execution. */
-	if (mysql_real_query(&dbh->handle, sql->str, sql->used)) {
-		ast_log(LOG_WARNING, "MySQL RealTime: Failed to query database: %s\n", mysql_error(&dbh->handle));
-		release_table(table);
-		release_database(dbh);
-		return -1;
-	}
-
-	numrows = mysql_affected_rows(&dbh->handle);
-	release_database(dbh);
-
-	ast_debug(1, "MySQL RealTime: Updated %llu rows on table: %s\n", numrows, tablename);
-
-	/* From http://dev.mysql.com/doc/mysql/en/mysql-affected-rows.html
-	 * An integer greater than zero indicates the number of rows affected
-	 * Zero indicates that no records were updated
-	 * -1 indicates that the query returned an error (although, if the query failed, it should have been caught above.)
-	*/
-
-	return (int)numrows;
-}
- 
 static int store_mysql(const char *database, const char *table, va_list ap)
 {
 	struct mysql_conn *dbh;
@@ -1376,7 +1249,6 @@
 	.store_func = store_mysql,
 	.destroy_func = destroy_mysql,
 	.update_func = update_mysql,
-	.update2_func = update2_mysql,
 	.require_func = require_mysql,
 	.unload_func = unload_mysql,
 };
@@ -1440,12 +1312,10 @@
 	const char *catg;
 	struct mysql_conn *cur;
 
-	if ((config = ast_config_load(RES_CONFIG_MYSQL_CONF, config_flags)) == CONFIG_STATUS_FILEMISSING) {
+	if (!(config = ast_config_load(RES_CONFIG_MYSQL_CONF, config_flags))) {
 		return 0;
 	} else if (config == CONFIG_STATUS_FILEUNCHANGED) {
 		return 0;
-	} else if (config == CONFIG_STATUS_FILEINVALID) {
-		ast_log(LOG_ERROR, "Not %sloading " RES_CONFIG_MYSQL_CONF "\n", reload ? "re" : "");
 	}
 
 	AST_LIST_LOCK(&databases);




More information about the svn-commits mailing list