diff --git a/CHANGES b/CHANGES index a34cc1573a..810c330dfd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +3257. [bug] Do not generate a error message when calling fsync() + in a pipe or socket. [RT #27109] + 3256. [bug] Disable empty zones for lwresd -C. [RT #27139] 3255. [func] No longer require that a empty zones be explicitly diff --git a/lib/isc/unix/stdio.c b/lib/isc/unix/stdio.c index 95d9d788a4..88b5c677e8 100644 --- a/lib/isc/unix/stdio.c +++ b/lib/isc/unix/stdio.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: stdio.c,v 1.10 2011/03/05 23:52:31 tbox Exp $ */ +/* $Id: stdio.c,v 1.11 2011/12/22 08:49:01 marka Exp $ */ #include @@ -110,7 +110,11 @@ isc_stdio_sync(FILE *f) { int r; r = fsync(fileno(f)); - if (r == 0) + /* + * fsync is not supported on sockets and pipes which + * result in EINVAL / ENOTSUP. + */ + if (r == 0 || errno == EINVAL || errno == ENOTSUP) return (ISC_R_SUCCESS); else return (isc__errno2result(errno));