summaryrefslogtreecommitdiff
path: root/bin/named/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/named/server.c')
-rw-r--r--bin/named/server.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/bin/named/server.c b/bin/named/server.c
index 20d09108..427b56ef 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: server.c,v 1.556 2009/11/28 15:57:36 vjs Exp $ */
+/* $Id: server.c,v 1.556.8.6 2010/01/13 23:48:19 tbox Exp $ */
/*! \file */
@@ -4090,8 +4090,7 @@ load_configuration(const char *filename, ns_server_t *server,
}
/*
- * Create (or recreate) the built-in views. Currently
- * there is only one, the _bind view, but allow for others.
+ * Create (or recreate) the built-in views.
*/
builtin_views = NULL;
RUNTIME_CHECK(cfg_map_get(ns_g_config, "view",
@@ -5132,6 +5131,8 @@ zone_from_args(ns_server_t *server, char *args, dns_zone_t **zonep) {
/* Partial match? */
if (result != ISC_R_SUCCESS && *zonep != NULL)
dns_zone_detach(zonep);
+ if (result == DNS_R_PARTIALMATCH)
+ result = ISC_R_NOTFOUND;
fail1:
return (result);
}
@@ -6151,10 +6152,8 @@ ns_server_tsigdelete(ns_server_t *server, char *command, isc_buffer_t *text) {
n = snprintf((char *)isc_buffer_used(text),
isc_buffer_availablelength(text),
"%d tsig keys deleted.\n", foundkeys);
- if (n >= isc_buffer_availablelength(text)) {
- isc_task_endexclusive(server->task);
+ if (n >= isc_buffer_availablelength(text))
return (ISC_R_NOSPACE);
- }
isc_buffer_add(text, n);
return (ISC_R_SUCCESS);
@@ -6270,10 +6269,8 @@ ns_server_tsiglist(ns_server_t *server, isc_buffer_t *text) {
n = snprintf((char *)isc_buffer_used(text),
isc_buffer_availablelength(text),
"no tsig keys found.\n");
- if (n >= isc_buffer_availablelength(text)) {
- isc_task_endexclusive(server->task);
+ if (n >= isc_buffer_availablelength(text))
return (ISC_R_NOSPACE);
- }
isc_buffer_add(text, n);
}
@@ -6304,7 +6301,7 @@ ns_server_sign(ns_server_t *server, char *args) {
keyopts = dns_zone_getkeyopts(zone);
if ((keyopts & DNS_ZONEKEY_ALLOW) != 0)
- result = dns_zone_rekey(zone);
+ dns_zone_rekey(zone);
else
result = ISC_R_NOPERM;
@@ -6359,6 +6356,8 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
return (DNS_R_NOTMASTER);
}
+ result = isc_task_beginexclusive(server->task);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
frozen = dns_zone_getupdatedisabled(zone);
if (freeze) {
if (frozen) {
@@ -6398,6 +6397,7 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
}
}
}
+ isc_task_endexclusive(server->task);
if (msg != NULL && strlen(msg) < isc_buffer_availablelength(text))
isc_buffer_putmem(text, (const unsigned char *)msg,