mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-10 10:11:39 -04:00
The route socket and its storage was detached while still reading
The interfacemgr and the .route was being detached while the network manager had pending read from the socket. Instead of detaching from the socket, we need to cancel the read which in turn will detach the route socket and the associated interfacemgr.
This commit is contained in:
parent
2be07a4316
commit
9ae34a04e8
1 changed files with 3 additions and 11 deletions
|
|
@ -215,16 +215,9 @@ route_recv(isc_nmhandle_t *handle, isc_result_t eresult, isc_region_t *region,
|
|||
return;
|
||||
}
|
||||
|
||||
if (eresult == ISC_R_SHUTTINGDOWN) {
|
||||
/*
|
||||
* The mgr->route and mgr is detached in
|
||||
* ns_interfacemgr_shutdown()
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
if (eresult != ISC_R_SUCCESS) {
|
||||
if (eresult != ISC_R_CANCELED) {
|
||||
if (eresult != ISC_R_CANCELED && eresult != ISC_R_SHUTTINGDOWN)
|
||||
{
|
||||
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_ERROR,
|
||||
"automatic interface scanning "
|
||||
"terminated: %s",
|
||||
|
|
@ -453,8 +446,7 @@ ns_interfacemgr_shutdown(ns_interfacemgr_t *mgr) {
|
|||
purge_old_interfaces(mgr);
|
||||
|
||||
if (mgr->route != NULL) {
|
||||
isc_nmhandle_detach(&mgr->route);
|
||||
ns_interfacemgr_detach(&mgr);
|
||||
isc_nm_cancelread(mgr->route);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue