mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
Revision 189537 was supposed to make 1.4 more correct. Instead, it broke func_odbc. Reverting.
(closes issue #15317, issue #14614) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@204170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -227,9 +227,6 @@ static int acf_odbc_read(struct ast_channel *chan, char *cmd, char *s, char *buf
|
||||
SQLSMALLINT colcount=0;
|
||||
SQLLEN indicator;
|
||||
|
||||
/* Reset, in case of an error */
|
||||
pbx_builtin_setvar_helper(chan, "~ODBCVALUES~", "");
|
||||
|
||||
AST_LIST_LOCK(&queries);
|
||||
AST_LIST_TRAVERSE(&queries, query, list) {
|
||||
if (!strcmp(query->acf->name, cmd)) {
|
||||
@@ -348,9 +345,9 @@ static int acf_odbc_read(struct ast_channel *chan, char *cmd, char *s, char *buf
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Copy data, encoding '\', ',', '"', and '|' for the argument parser */
|
||||
/* Copy data, encoding '\' and ',' for the argument parser */
|
||||
for (i = 0; i < sizeof(coldata); i++) {
|
||||
if (escapecommas && strchr("\\,|\"", coldata[i])) {
|
||||
if (escapecommas && (coldata[i] == '\\' || coldata[i] == ',')) {
|
||||
buf[buflen++] = '\\';
|
||||
}
|
||||
buf[buflen++] = coldata[i];
|
||||
@@ -371,10 +368,6 @@ static int acf_odbc_read(struct ast_channel *chan, char *cmd, char *s, char *buf
|
||||
SQLCloseCursor(stmt);
|
||||
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
|
||||
ast_odbc_release_obj(obj);
|
||||
|
||||
/* Pass an unadulterated string to ARRAY, if needed. This is only needed
|
||||
* in 1.4, because of the misfeature in Set. */
|
||||
pbx_builtin_setvar_helper(chan, "~ODBCVALUES~", buf);
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
if (bogus_chan)
|
||||
|
@@ -162,23 +162,6 @@ static struct ast_custom_function regex_function = {
|
||||
.read = regex,
|
||||
};
|
||||
|
||||
static int strecmp(const char *pre, const char *post)
|
||||
{
|
||||
int res;
|
||||
for (; *pre && *post; pre++, post++) {
|
||||
if (*pre == '"') {
|
||||
post--;
|
||||
continue;
|
||||
} else if (*pre == '\\') {
|
||||
pre++;
|
||||
}
|
||||
if ((res = strncmp(pre, post, 1))) {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return strncmp(pre, post, 1);
|
||||
}
|
||||
|
||||
static int array(struct ast_channel *chan, char *cmd, char *var,
|
||||
const char *value)
|
||||
{
|
||||
@@ -191,15 +174,6 @@ static int array(struct ast_channel *chan, char *cmd, char *var,
|
||||
char *value2;
|
||||
int i;
|
||||
|
||||
if (chan) {
|
||||
const char *value3;
|
||||
ast_mutex_lock(&chan->lock);
|
||||
if ((value3 = pbx_builtin_getvar_helper(chan, "~ODBCVALUES~")) && strecmp(value3, value) == 0) {
|
||||
value = ast_strdupa(value3);
|
||||
}
|
||||
ast_mutex_unlock(&chan->lock);
|
||||
}
|
||||
|
||||
value2 = ast_strdupa(value);
|
||||
if (!var || !value2)
|
||||
return -1;
|
||||
|
Reference in New Issue
Block a user