Merge branch 'nsupdate-late-responses' into 'master'
Delay kserver cleanup until all tasks finish See merge request isc-projects/bind9!3316
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
||||
5428. [bug] Cleanup GSSAPI resources in nsupdate only after taskmgr
|
||||
has been destroyed. Thanks to Petr Menšík. [GL !3316]
|
||||
|
||||
5427. [placeholder]
|
||||
|
||||
5426. [bug] Don't fail when setting SO_INCOMING_CPU on the socket
|
||||
|
||||
@@ -759,6 +759,10 @@ doshutdown(void) {
|
||||
|
||||
static void
|
||||
maybeshutdown(void) {
|
||||
/* when called from getinput, doshutdown might be already finished */
|
||||
if (requestmgr == NULL)
|
||||
return;
|
||||
|
||||
ddebug("Shutting down request manager");
|
||||
dns_requestmgr_shutdown(requestmgr);
|
||||
|
||||
@@ -3036,6 +3040,8 @@ send_gssrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
|
||||
isc_sockaddr_t *srcaddr;
|
||||
|
||||
debug("send_gssrequest");
|
||||
REQUIRE(destaddr != NULL);
|
||||
|
||||
reqinfo = isc_mem_get(gmctx, sizeof(nsu_gssinfo_t));
|
||||
reqinfo->msg = msg;
|
||||
reqinfo->addr = destaddr;
|
||||
@@ -3327,21 +3333,7 @@ cleanup(void) {
|
||||
ddebug("Detaching GSS-TSIG keyring");
|
||||
dns_tsigkeyring_detach(&gssring);
|
||||
}
|
||||
if (kserver != NULL) {
|
||||
isc_mem_put(gmctx, kserver, sizeof(isc_sockaddr_t));
|
||||
kserver = NULL;
|
||||
}
|
||||
if (realm != NULL) {
|
||||
isc_mem_free(gmctx, realm);
|
||||
realm = NULL;
|
||||
}
|
||||
if (dns_name_dynamic(&tmpzonename)) {
|
||||
dns_name_free(&tmpzonename, gmctx);
|
||||
}
|
||||
if (dns_name_dynamic(&restart_master)) {
|
||||
dns_name_free(&restart_master, gmctx);
|
||||
}
|
||||
#endif /* HAVE_GSSAPI */
|
||||
#endif /* ifdef HAVE_GSSAPI */
|
||||
|
||||
if (sig0key != NULL) {
|
||||
dst_key_free(&sig0key);
|
||||
@@ -3359,6 +3351,26 @@ cleanup(void) {
|
||||
ddebug("Shutting down timer manager");
|
||||
isc_timermgr_destroy(&timermgr);
|
||||
|
||||
#ifdef HAVE_GSSAPI
|
||||
/*
|
||||
* Cleanup GSSAPI resources after taskmgr has been destroyed.
|
||||
*/
|
||||
if (kserver != NULL) {
|
||||
isc_mem_put(gmctx, kserver, sizeof(isc_sockaddr_t));
|
||||
kserver = NULL;
|
||||
}
|
||||
if (realm != NULL) {
|
||||
isc_mem_free(gmctx, realm);
|
||||
realm = NULL;
|
||||
}
|
||||
if (dns_name_dynamic(&tmpzonename)) {
|
||||
dns_name_free(&tmpzonename, gmctx);
|
||||
}
|
||||
if (dns_name_dynamic(&restart_master)) {
|
||||
dns_name_free(&restart_master, gmctx);
|
||||
}
|
||||
#endif /* ifdef HAVE_GSSAPI */
|
||||
|
||||
ddebug("Removing log context");
|
||||
isc_log_destroy(&glctx);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user