f7db9fd5e7
safe_recv(..., len), when used on a blocking fd, will attempt to call recv and collect data until either EOF, a hard error, or len bytes are collected. The previous commit used safe_recv() in a blocking mode to read a single byte into a buffer that was larger than a byte. This would cause ndhc to stall as safe_recv() would try to fill that buffer when no more data would ever be sent. This issue would only happen if ndhc is supposed to run a script. Introduce and use safe_recv_once() that will correct this problem and fill the semantic gap for blocking fds. I add a new call because in some cases the above behavior might be required for a blocking fd, too. Note that the above issue is not a problem for nonblocking fds; the EAGAIN or EWOULDBLOCK path will return a short read. |
||
---|---|---|
.. | ||
hwrng.c | ||
hwrng.h | ||
io.c | ||
io.h | ||
log.h | ||
net_checksum16.h | ||
privs.c | ||
privs.h | ||
pspawn.c | ||
pspawn.h | ||
random.c | ||
random.h |