chiark / gitweb /
server/tun-slip.c, server/tripe-admin.5.in: Handle write errors.
The error handling here is a little delicate. SLIP pipes are marked
nonblocking, so that a slow driver won't hold up the server. We ignore
EWOULDBLOCK/EAGAIN on the grounds that a dropped packet isn't particularly
disastrous and SLIP is pretty good at resynchronizing. Other errors
break the tunnel; we issue a warning and stop bothering to write
packets at all until the interface is released and reassigned. Obviously
dynamic interfaces will be discarded completely; static ones might be
left broken, but at least we'll retry.
Also, add the new warning to the documentation, since write errors weren't
previously something we worried about.