mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-28 21:17:54 +00:00
[master] error on bad parameter to 'rndc dumpdb'
4433. [cleanup] Report an error when passing an invalid option or view name to "rndc dumpdb". [RT #42958]
This commit is contained in:
parent
7a76be36e7
commit
c38d989fdd
3
CHANGES
3
CHANGES
@ -1,4 +1,5 @@
|
||||
4433. [placeholder]
|
||||
4433. [cleanup] Report an error when passing an invalid option or
|
||||
view name to "rndc dumpdb". [RT #42958]
|
||||
|
||||
4432. [test] Hide rndc output on expected failures in logfileconfig
|
||||
system test. [RT #27996]
|
||||
|
@ -207,7 +207,7 @@ ns_control_docommand(isccc_sexpr_t *message, isc_boolean_t readonly,
|
||||
} else if (command_compare(command, NS_COMMAND_QUERYLOG)) {
|
||||
result = ns_server_togglequerylog(ns_g_server, lex);
|
||||
} else if (command_compare(command, NS_COMMAND_DUMPDB)) {
|
||||
ns_server_dumpdb(ns_g_server, lex);
|
||||
ns_server_dumpdb(ns_g_server, lex, text);
|
||||
result = ISC_R_SUCCESS;
|
||||
} else if (command_compare(command, NS_COMMAND_SECROOTS)) {
|
||||
result = ns_server_dumpsecroots(ns_g_server, lex, text);
|
||||
|
@ -596,7 +596,7 @@ ns_server_dumpstats(ns_server_t *server);
|
||||
* Dump the current cache to the dump file.
|
||||
*/
|
||||
isc_result_t
|
||||
ns_server_dumpdb(ns_server_t *server, isc_lex_t *lex);
|
||||
ns_server_dumpdb(ns_server_t *server, isc_lex_t *lex, isc_buffer_t **text);
|
||||
|
||||
/*%
|
||||
* Dump the current security roots to the secroots file.
|
||||
|
@ -9478,12 +9478,13 @@ dumpdone(void *arg, isc_result_t result) {
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_server_dumpdb(ns_server_t *server, isc_lex_t *lex) {
|
||||
ns_server_dumpdb(ns_server_t *server, isc_lex_t *lex, isc_buffer_t **text) {
|
||||
struct dumpcontext *dctx = NULL;
|
||||
dns_view_t *view;
|
||||
isc_result_t result;
|
||||
char *ptr;
|
||||
const char *sep;
|
||||
isc_boolean_t found;
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, NULL);
|
||||
@ -9557,15 +9558,26 @@ ns_server_dumpdb(ns_server_t *server, isc_lex_t *lex) {
|
||||
}
|
||||
|
||||
nextview:
|
||||
found = ISC_FALSE;
|
||||
for (view = ISC_LIST_HEAD(server->viewlist);
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
if (ptr != NULL && strcmp(view->name, ptr) != 0)
|
||||
continue;
|
||||
found = ISC_TRUE;
|
||||
CHECK(add_view_tolist(dctx, view));
|
||||
}
|
||||
if (ptr != NULL) {
|
||||
if (!found) {
|
||||
putstr(text, "view '");
|
||||
putstr(text, ptr);
|
||||
putstr(text, "' not found");
|
||||
putnull(text);
|
||||
result = ISC_R_NOTFOUND;
|
||||
dumpdone(dctx, result);
|
||||
return (result);
|
||||
}
|
||||
ptr = next_token(lex, NULL);
|
||||
if (ptr != NULL)
|
||||
goto nextview;
|
||||
|
Loading…
x
Reference in New Issue
Block a user