BUG/MEDIUM: raw_sock: Make sur the fd and conn are sync.
authorOlivier Houchard <cognet@ci0.org>
Wed, 15 Jan 2020 18:16:23 +0000 (19:16 +0100)
committerOlivier Houchard <cognet@ci0.org>
Wed, 15 Jan 2020 18:16:23 +0000 (19:16 +0100)
commitac8147446c7a3d1aa607042bc782095b03bc8dc4
tree7e3553c9cb31e53a9064b8e2e83eafc8e3eafcca
parent68787ef70a2e0fe19d0ab753dab8ed5c90cb4398
BUG/MEDIUM: raw_sock: Make sur the fd and conn are sync.

Commit 08fa16e397ffb1c6511b98ade2a3bfff9435e521 made sure
we let the fd layer we didn't want to poll anymore if
we failed to send and sendto() returne EAGAIN.
However, just disabling the polling with fd_stop_send()
while not notifying the connection layer means the
connection layer may believe the polling is activated
and nothing needs to be done when it is wrong.
A better fix is to revamp that whole code, for the
time being, just make sure the fd and connection
layer are properly synchronised.

This should fix the problem recently reported on FreeBSD.
src/raw_sock.c