summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2019-11-30 17:39:25 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2019-11-30 17:39:25 +0000
commit1bf08084e235d22625eb78f457d668064a1ce28b (patch)
tree7cc1b1ccab43c4b42b1309cb013c60c81257cdfe /src
parenta3da0b8f1ed51351bb3a6eaed2146fae4eebd35b (diff)
FreeBSD: fix sendfile shim
Broken-by: 7d758a6a68
Diffstat (limited to 'src')
-rw-r--r--src/OS/os.c-FreeBSD12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/OS/os.c-FreeBSD b/src/OS/os.c-FreeBSD
index 1261b8557..4cc46c752 100644
--- a/src/OS/os.c-FreeBSD
+++ b/src/OS/os.c-FreeBSD
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 1995 - 2018 */
+/* Copyright (c) Jeremy Harris 1995 - 2019 */
/* See the file NOTICE for conditions of use and distribution. */
/* FreeBSD-specific code. This is concatenated onto the generic
@@ -14,11 +14,13 @@ src/os.c file. */
*************/
ssize_t
-os_sendfile(int out, int in, off_t * off, size_t cnt)
+os_sendfile(int out, int in, off_t * offp, size_t cnt)
{
-off_t written;
-return sendfile(in, out, *off, cnt, NULL, &written, 0) < 0
- ? (ssize_t) -1 : (ssize_t) written;
+off_t loff = *offp, written;
+
+if (sendfile(in, out, loff, cnt, NULL, &written, 0) < 0) return (ssize_t)-1;
+*offp = loff + written;
+return (ssize_t)written;
}
/* End of os.c-Linux */