[PATCH] Patch for bug 11714: Listening for network interface changes doesn't work
Martin Schwenke
martin at meltin.net
Fri Feb 5 04:02:14 UTC 2016
On Thu, 4 Feb 2016 18:20:20 +0100, Ralph Boehme <rb at sernet.de> wrote:
> Hi!
>
> <https://bugzilla.samba.org/show_bug.cgi?id=11714>
>
> winbindd is watching for network interface address changes by virtue
> of our addrchange_send/recv() API that uses netlink to query the
> kernel for this information.
>
> Log:
>
> [2016/02/04 11:43:31.723123, 10, pid=17692, effective(0, 0), real(0,0)] ../source3/lib/addrchange.c:154(addrchange_done)
> tdgram_recvfrom_recv returned Operation not supported
> [2016/02/04 11:43:31.723176, 10, pid=17692, effective(0, 0), real(0,0), class=winbind] ../source3/winbindd/winbindd.c:1486(winbindd_addr_changed)
> addrchange_recv failed: NT_STATUS_NOT_SUPPORTED, stop listening
>
> strace shows a failing ioctl(fd, FIONREAD, ...) returning
> EOPNOTSUPP. We use the ioctl to determine the amount of pending data
> so we can allocate an appropriate buffer.
>
> This is a regression introduced in 0d161e42d9aeb155eae2b04eccec497b21de8029.
>
> What can we do?
>
> We could use MSG_PEEK, but that's not portable and we'd have to call
> recvmsg() twice every time the fd is reported readable.
Just out interest, what doesn't support MSG_PEEK? It is in the POSIX
standard that I have from 2001. :-)
peace & happiness,
martin
More information about the samba-technical
mailing list