+2979. [bug] named could deadlock during shutdown if two
+ "rndc stop" commands were issued at the same
+ time. [RT #22108]
+
2978. [port] hpux: look for <devpoll.h> [RT #21919]
2977. [bug] 'nsupdate -l' report if the session key is missing.
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: control.c,v 1.36.50.4 2010/08/16 22:27:16 marka Exp $ */
+/* $Id: control.c,v 1.36.50.5 2010/12/03 22:04:49 each Exp $ */
/*! \file */
* isc_app_shutdown below.
*/
#endif
+ /* Do not flush master files */
ns_server_flushonshutdown(ns_g_server, ISC_FALSE);
ns_os_shutdownmsg(command, text);
isc_app_shutdown();
result = ISC_R_SUCCESS;
} else if (command_compare(command, NS_COMMAND_STOP)) {
+ /*
+ * "stop" is the same as "halt" except it does
+ * flush master files.
+ */
#ifdef HAVE_LIBSCF
if (ns_smf_got_instance == 1 && ns_smf_chroot == 1) {
result = ns_smf_add_message(text);
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: namespace.h,v 1.5.62.2 2010/08/13 23:46:28 tbox Exp $ */
+/* $Id: namespace.h,v 1.5.62.3 2010/12/03 22:04:49 each Exp $ */
#ifndef ISCAPI_NAMESPACE_H
#define ISCAPI_NAMESPACE_H 1
#define isc_task_create isc__task_create
#define isc_task_attach isc__task_attach
#define isc_task_detach isc__task_detach
+#define isc_task_exiting isc__task_exiting
#define isc_task_send isc__task_send
#define isc_task_sendanddetach isc__task_sendanddetach
#define isc_task_purgerange isc__task_purgerange
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: task.h,v 1.65 2009/09/02 18:38:40 jinmei Exp $ */
+/* $Id: task.h,v 1.65.104.1 2010/12/03 22:04:49 each Exp $ */
#ifndef ISC_TASK_H
#define ISC_TASK_H 1
*\li '*t' has the "current time".
*/
+isc_boolean_t
+isc__task_exiting(isc_task_t *t);
+/*%<
+ * Returns ISC_TRUE if the task is in the process of shutting down,
+ * ISC_FALSE otherwise.
+ *
+ * Requires:
+ *\li 'task' is a valid task.
+ */
+
/*****
***** Task Manager.
*****/
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: task.c,v 1.111 2009/10/05 17:30:49 fdupont Exp $ */
+/* $Id: task.c,v 1.111.60.1 2010/12/03 22:04:49 each Exp $ */
/*! \file
* \author Principal Author: Bob Halley
}
#endif
+isc_boolean_t
+isc__task_exiting(isc_task_t *t) {
+ isc__task_t *task = (isc__task_t *)t;
+
+ REQUIRE(VALID_TASK(task));
+ return (TASK_SHUTTINGDOWN(task));
+}
+
+
#if defined(HAVE_LIBXML2) && defined(BIND9)
void
isc_taskmgr_renderxml(isc_taskmgr_t *mgr0, xmlTextWriterPtr writer) {
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: socket.c,v 1.326.20.5 2010/12/03 00:57:32 marka Exp $ */
+/* $Id: socket.c,v 1.326.20.6 2010/12/03 22:04:49 each Exp $ */
/*! \file */
* Attach to socket and to task.
*/
isc_task_attach(task, &ntask);
+ if (isc_task_exiting(ntask)) {
+ isc_task_detach(&ntask);
+ isc_event_free(ISC_EVENT_PTR(&dev));
+ UNLOCK(&sock->lock);
+ return (ISC_R_SHUTTINGDOWN);
+ }
nsock->references++;
nsock->statsindex = sock->statsindex;
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: socket.c,v 1.81.22.3 2010/11/18 00:59:15 tbox Exp $ */
+/* $Id: socket.c,v 1.81.22.4 2010/12/03 22:04:49 each Exp $ */
/* This code uses functions which are only available on Server 2003 and
* higher, and Windows XP and higher.
* Attach to socket and to task.
*/
isc_task_attach(task, &ntask);
+ if (isc_task_exiting(ntask)) {
+ isc_task_detach(&ntask);
+ isc_event_free(ISC_EVENT_PTR(&dev));
+ UNLOCK(&sock->lock);
+ return (ISC_R_SHUTTINGDOWN);
+ }
nsock->references++;
adev->ev_sender = ntask;