mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-01 11:32:25 +00:00
Merge "res_realtime: Fix 'realtime update2' argument handling"
This commit is contained in:
@@ -125,7 +125,7 @@ static char *cli_realtime_update2(struct ast_cli_entry *e, int cmd, struct ast_c
|
|||||||
" Update a single variable, requiring one or more fields to match using the\n"
|
" Update a single variable, requiring one or more fields to match using the\n"
|
||||||
" RealTime driver. You must supply a family name, a column to update, a new\n"
|
" RealTime driver. You must supply a family name, a column to update, a new\n"
|
||||||
" value, and at least one column and value to match.\n"
|
" value, and at least one column and value to match.\n"
|
||||||
" Ex: realtime update sippeers name bobsphone ipaddr 127.0.0.1 NULL port 4343\n"
|
" Ex: realtime update2 sippeers name bobsphone ipaddr 127.0.0.1 NULL port 4343\n"
|
||||||
" will execute SQL as\n"
|
" will execute SQL as\n"
|
||||||
" UPDATE sippeers SET port='4343' WHERE name='bobsphone' and ipaddr='127.0.0.1'\n";
|
" UPDATE sippeers SET port='4343' WHERE name='bobsphone' and ipaddr='127.0.0.1'\n";
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -133,21 +133,39 @@ static char *cli_realtime_update2(struct ast_cli_entry *e, int cmd, struct ast_c
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a->argc < 7)
|
/* Make sure we have the right number of arguments and that the required literal NULL
|
||||||
|
is present */
|
||||||
|
if (a->argc < 8 || a->argc > 16 || a->argc % 2
|
||||||
|
|| strcmp(a->argv[a->argc - 3], "NULL")) {
|
||||||
return CLI_SHOWUSAGE;
|
return CLI_SHOWUSAGE;
|
||||||
|
}
|
||||||
|
|
||||||
if (a->argc == 7) {
|
if (a->argc == 8) {
|
||||||
res = ast_update2_realtime(a->argv[2], a->argv[3], a->argv[4], SENTINEL, a->argv[5], a->argv[6], SENTINEL);
|
res = ast_update2_realtime(
|
||||||
} else if (a->argc == 9) {
|
a->argv[2], a->argv[3], a->argv[4], SENTINEL,
|
||||||
res = ast_update2_realtime(a->argv[2], a->argv[3], a->argv[4], a->argv[5], a->argv[6], SENTINEL, a->argv[7], a->argv[8], SENTINEL);
|
a->argv[6], a->argv[7], SENTINEL);
|
||||||
} else if (a->argc == 11) {
|
} else if (a->argc == 10) {
|
||||||
res = ast_update2_realtime(a->argv[2], a->argv[3], a->argv[4], a->argv[5], a->argv[6], a->argv[7], a->argv[8], SENTINEL, a->argv[9], a->argv[10], SENTINEL);
|
res = ast_update2_realtime(
|
||||||
} else if (a->argc == 13) {
|
a->argv[2], a->argv[3], a->argv[4], a->argv[5],
|
||||||
res = ast_update2_realtime(a->argv[2], a->argv[3], a->argv[4], a->argv[5], a->argv[6], a->argv[7], a->argv[8], a->argv[9], a->argv[10], SENTINEL, a->argv[11], a->argv[12], SENTINEL);
|
a->argv[6], SENTINEL,
|
||||||
} else if (a->argc == 15) {
|
a->argv[8], a->argv[9], SENTINEL);
|
||||||
res = ast_update2_realtime(a->argv[2], a->argv[3], a->argv[4], a->argv[5], a->argv[6], a->argv[7], a->argv[8], a->argv[9], a->argv[10], a->argv[11], a->argv[12], SENTINEL, a->argv[13], a->argv[14], SENTINEL);
|
} else if (a->argc == 12) {
|
||||||
} else {
|
res = ast_update2_realtime(
|
||||||
return CLI_SHOWUSAGE;
|
a->argv[2], a->argv[3], a->argv[4], a->argv[5],
|
||||||
|
a->argv[6], a->argv[7], a->argv[8], SENTINEL,
|
||||||
|
a->argv[10], a->argv[11], SENTINEL);
|
||||||
|
} else if (a->argc == 14) {
|
||||||
|
res = ast_update2_realtime(
|
||||||
|
a->argv[2], a->argv[3], a->argv[4], a->argv[5],
|
||||||
|
a->argv[6], a->argv[7], a->argv[8], a->argv[9],
|
||||||
|
a->argv[10], SENTINEL,
|
||||||
|
a->argv[12], a->argv[13], SENTINEL);
|
||||||
|
} else if (a->argc == 16) {
|
||||||
|
res = ast_update2_realtime(
|
||||||
|
a->argv[2], a->argv[3], a->argv[4], a->argv[5],
|
||||||
|
a->argv[6], a->argv[7], a->argv[8], a->argv[9],
|
||||||
|
a->argv[10], a->argv[11], a->argv[12], SENTINEL,
|
||||||
|
a->argv[14], a->argv[15], SENTINEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user