-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]
} 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);
* 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.
}
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);
}
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;