server: log errors with fclose(3), remove question on short reads
ISO 9899:TC3, section 7.19.8.1 says
The fread function returns the number of elements successfully
read, which may be less than nmemb if a read error or end-of-file
is encountered.
This is not as obvious as it could be, but POSIX 2008 (IEEE Std
1003.1-2008), which we require and intends to be identical to the
C spec on this issue, says
Upon successful completion, fread() shall return the number of
elements successfully read which is less than nitems only if a
read error or end-of-file is encountered.