mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 10:32:13 -04:00
1183. [bug] Handle ENOSR error when writing to the internal
control pipe. [RT #2395]
This commit is contained in:
parent
8569ab045a
commit
852fa3b2e3
2 changed files with 14 additions and 1 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
1183. [bug] Handle ENOSR error when writing to the internal
|
||||
control pipe. [RT #2395]
|
||||
|
||||
1182. [bug] The server could throw an assertion failure when
|
||||
constructing a negative response packet.
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: socket.c,v 1.219 2001/12/19 05:51:34 marka Exp $ */
|
||||
/* $Id: socket.c,v 1.220 2002/01/22 02:38:34 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -378,6 +378,16 @@ select_poke(isc_socketmgr_t *mgr, int fd, int msg) {
|
|||
|
||||
do {
|
||||
cc = write(mgr->pipe_fds[1], buf, sizeof(buf));
|
||||
#ifdef ENOSR
|
||||
/*
|
||||
* Treat ENOSR as EAGAIN but loop slowly as it is
|
||||
* unlikely to clear fast.
|
||||
*/
|
||||
if (cc < 0 && errno == ENOSR) {
|
||||
sleep(1);
|
||||
errno = EAGAIN;
|
||||
}
|
||||
#endif
|
||||
} while (cc < 0 && SOFT_ERROR(errno));
|
||||
|
||||
if (cc < 0) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue