diff options
author | Eric Wong <e@80x24.org> | 2017-03-11 00:57:09 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2017-05-11 21:09:11 +0000 |
commit | 93c11990d215c678d254a56a7b3bc63e3a53e0de (patch) | |
tree | c0f86f2bc2f756dd8e62315bba16a1524ae3e355 | |
parent | e5c86cb81fceb3b37019aed701b475bf40802c10 (diff) | |
download | cmogstored-93c11990d215c678d254a56a7b3bc63e3a53e0de.tar.gz |
While we never call sendfile without an offset, some projects may copy our code and want to use it without an offset.
-rw-r--r-- | compat_sendfile.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compat_sendfile.h b/compat_sendfile.h index 8413891..c1cc9e4 100644 --- a/compat_sendfile.h +++ b/compat_sendfile.h @@ -12,14 +12,15 @@ static ssize_t compat_sendfile(int sockfd, int filefd, off_t *off, size_t count) max_pread = MIN(max_pread, count); do { - r = pread(filefd, buf, max_pread, *off); + r = off ? pread(filefd, buf, max_pread, *off) : + read(filefd, buf, max_pread); } while (r < 0 && errno == EINTR); if (r <= 0) return r; w = write(sockfd, buf, r); - if (w > 0) + if (w > 0 && off) *off += w; return w; } |