mirror of
https://github.com/opnsense/src.git
synced 2026-02-21 17:00:58 -05:00
known in advance, or where the caller doesn't care and just keeps reading until it hits EOF. In fetch_read(): the socket is non-blocking, so read() will return 0 on EOF, and -1 (errno == EAGAIN) when the connection is still open but there is no data waiting. In the first case, we should immediately return 0. The EINTR case was also broken, although not in a way that matters. In fetch_writev(): use timersub() and timercmp() as in fetch_read(). In http_fillbuf(): set errno to a sensible value when an invalid chunk header is encountered. In http_readfn(): as in fetch_read(), a zero return from down the stack indicates EOF, not an error. Furthermore, when io->error is EINTR, clear it (but no errno) before returning so the caller can retry after dealing with the interrupt. MFC after: 3 days |
||
|---|---|---|
| .. | ||
| common.c | ||
| common.h | ||
| fetch.3 | ||
| fetch.c | ||
| fetch.h | ||
| file.c | ||
| ftp.c | ||
| ftp.errors | ||
| http.c | ||
| http.errors | ||
| Makefile | ||