[Asterisk-cvs] asterisk/res res_config_odbc.c,1.11,1.12
markster at lists.digium.com
markster at lists.digium.com
Mon Nov 22 00:03:15 CST 2004
Update of /usr/cvsroot/asterisk/res
In directory mongoose.digium.com:/tmp/cvs-serv32230/res
Modified Files:
res_config_odbc.c
Log Message:
Minor realtime improvements
Index: res_config_odbc.c
===================================================================
RCS file: /usr/cvsroot/asterisk/res/res_config_odbc.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- res_config_odbc.c 9 Oct 2004 20:08:41 -0000 1.11
+++ res_config_odbc.c 22 Nov 2004 05:03:03 -0000 1.12
@@ -31,13 +31,28 @@
LOCAL_USER_DECL;
+static void parseop(char *newp, int newplen, char **opo, const char *newparam)
+{
+ char *op;
+ strncpy(newp, newparam, newplen - 1);
+ op = strchr(newp, ' ');
+ if (op) {
+ *op = '\0';
+ op++;
+ } else
+ op = "=";
+ *opo = op;
+}
+
static struct ast_variable *realtime_odbc(const char *database, const char *table, va_list ap)
{
odbc_obj *obj;
SQLHSTMT stmt;
- char sql[256];
+ char sql[1024];
char coltitle[256];
char rowdata[2048];
+ char newp[256];
+ char *op;
const char *newparam, *newval;
char *stringp;
char *chunk;
@@ -75,10 +90,11 @@
return NULL;
}
newval = va_arg(aq, const char *);
-
- snprintf(sql, sizeof(sql), "SELECT * FROM %s WHERE %s=?", table, newparam);
+ parseop(newp, sizeof(newp), &op, newparam);
+ snprintf(sql, sizeof(sql), "SELECT * FROM %s WHERE %s %s ?", table, newp, op);
while((newparam = va_arg(aq, const char *))) {
- snprintf(sql + strlen(sql), sizeof(sql) - strlen(sql), " AND %s=?", newparam);
+ parseop(newp, sizeof(newp), &op, newparam);
+ snprintf(sql + strlen(sql), sizeof(sql) - strlen(sql), " AND %s %s ?", newparam, op);
newval = va_arg(aq, const char *);
}
va_end(aq);
More information about the svn-commits
mailing list