502b7cf99b
readip() doesn't, at the moment, properly indicate to callers that it has timed out. One can tell that it's timed out if errno == EAGAIN when it returns, but this is not ideal. Restructure it a little bit to explicitly set errno to ETIMEDOUT if we've exhausted tleft. I found two places that care about where it timed out or not: sendrecv in net.c and sendrecv_tftp. Both are structured to pass smaller timeout values to readip while tracking a larger timeout. Neither of them were able to do this properly with readip not indicating ETIMEDOUT, so fix it. While here, straighten out the time (t/t1) usage in sendrecv_tftp. This would have manifested itself in periodic failures to NFS/TFTP boot for no apparent reason because MINTMO/MAXTMO were not actually being respected properly. Problems were not reported with NFS, only TFTP. Reported by: sbruno Reviewed by: sbruno, tsoome MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D14350 |
||
---|---|---|
.. | ||
amd64 | ||
i386 | ||
mips | ||
powerpc | ||
sparc64 | ||
__main.c | ||
abort.c | ||
arp.c | ||
assert.c | ||
bcd.c | ||
bootp.c | ||
bootp.h | ||
bootparam.c | ||
bootparam.h | ||
bzipfs.c | ||
cd9660.c | ||
close.c | ||
closeall.c | ||
crc32.c | ||
crc32.h | ||
dev.c | ||
dosfs.c | ||
dosfs.h | ||
environment.c | ||
ether.c | ||
ext2fs.c | ||
fstat.c | ||
getopt.c | ||
gets.c | ||
globals.c | ||
gpt.c | ||
gpt.h | ||
gzipfs.c | ||
in_cksum.c | ||
inet_ntoa.c | ||
ioctl.c | ||
iodesc.h | ||
ip.c | ||
libsa.3 | ||
lseek.c | ||
Makefile | ||
Makefile.depend | ||
nandfs.c | ||
net.c | ||
net.h | ||
netif.c | ||
netif.h | ||
nfs.c | ||
nfsv2.h | ||
nullfs.c | ||
open.c | ||
pager.c | ||
panic.c | ||
pkgfs.c | ||
printf.c | ||
qdivrem.c | ||
quad.h | ||
random.c | ||
rarp.c | ||
read.c | ||
readdir.c | ||
rpc.c | ||
rpc.h | ||
rpcv2.h | ||
saioctl.h | ||
sbrk.c | ||
splitfs.c | ||
stand.h | ||
stat.c | ||
strcasecmp.c | ||
strdup.c | ||
strerror.c | ||
tftp.c | ||
tftp.h | ||
twiddle.c | ||
udp.c | ||
ufs.c | ||
ufsread.c | ||
uuid_from_string.c | ||
uuid_to_string.c | ||
write.c | ||
xlocale_private.h | ||
zalloc_defs.h | ||
zalloc_malloc.c | ||
zalloc_mem.h | ||
zalloc_protos.h | ||
zalloc.c |