continue;
result = dns_view_flushcache(view);
if (result != ISC_R_SUCCESS)
- goto out;
+ goto cleanup;
view->enablevalidation = enable;
changed = ISC_TRUE;
}
result = ISC_R_SUCCESS;
else
result = ISC_R_FAILURE;
- out:
+ cleanup:
isc_task_endexclusive(server->task);
return (result);
}
dns_name_t *origin;
dns_rbtnode_t *node;
dns_tsigkey_t *tkey;
- unsigned int n;
const char *viewname;
if (view != NULL)
if (tkey->generated) {
dns_name_format(tkey->creator, creatorstr,
sizeof(creatorstr));
- n = snprintf((char *)isc_buffer_used(text),
- isc_buffer_availablelength(text),
- "view \"%s\"; type \"dynamic\"; key \"%s\"; creator \"%s\";\n",
- viewname, namestr, creatorstr);
+ if (*foundkeys != 0)
+ CHECK(putstr(text, "\n"));
+ CHECK(putstr(text, "view \""));
+ CHECK(putstr(text, viewname));
+ CHECK(putstr(text,
+ "\"; type \"dynamic\"; key \""));
+ CHECK(putstr(text, namestr));
+ CHECK(putstr(text, "\"; creator \""));
+ CHECK(putstr(text, creatorstr));
+ CHECK(putstr(text, "\";"));
} else {
- n = snprintf((char *)isc_buffer_used(text),
- isc_buffer_availablelength(text),
- "view \"%s\"; type \"static\"; key \"%s\";\n",
- viewname, namestr);
- }
- if (n >= isc_buffer_availablelength(text)) {
- dns_rbtnodechain_invalidate(&chain);
- return (ISC_R_NOSPACE);
+ if (*foundkeys != 0)
+ CHECK(putstr(text, "\n"));
+ CHECK(putstr(text, "view \""));
+ CHECK(putstr(text, viewname));
+ CHECK(putstr(text,
+ "\"; type \"static\"; key \""));
+ CHECK(putstr(text, namestr));
+ CHECK(putstr(text, "\";"));
}
- isc_buffer_add(text, n);
}
result = dns_rbtnodechain_next(&chain, &foundname, origin);
if (result == ISC_R_NOMORE)
}
return (ISC_R_SUCCESS);
+
+cleanup:
+ return (result);
}
isc_result_t
ns_server_tsiglist(ns_server_t *server, isc_buffer_t *text) {
isc_result_t result;
- unsigned int n;
dns_view_t *view;
unsigned int foundkeys = 0;
}
isc_task_endexclusive(server->task);
- if (foundkeys == 0) {
- n = snprintf((char *)isc_buffer_used(text),
- isc_buffer_availablelength(text),
- "no tsig keys found.\n");
- if (n >= isc_buffer_availablelength(text))
- return (ISC_R_NOSPACE);
- isc_buffer_add(text, n);
- }
+ if (foundkeys == 0)
+ CHECK(putstr(text, "no tsig keys found."));
+
+ if (isc_buffer_usedlength(text) > 0)
+ CHECK(putnull(text));
return (ISC_R_SUCCESS);
+
+ cleanup:
+ return (result);
}
/*