View | Details | Raw Unified | Return to bug 260181 | Differences between
and this patch

Collapse All | Expand All

(-)b/devel/libfixposix/Makefile (-1 / +2 lines)
Lines 1-9 Link Here
1
PORTNAME=	libfixposix
1
PORTNAME=	libfixposix
2
DISTVERSIONPREFIX=	v
2
DISTVERSIONPREFIX=	v
3
DISTVERSION=	0.4.3
3
DISTVERSION=	0.4.3
4
PORTREVISION=	1
4
CATEGORIES=	devel
5
CATEGORIES=	devel
5
6
6
MAINTAINER=	ports@FreeBSD.org
7
MAINTAINER=	ports@shiori.com.br
7
COMMENT=	Replacement for inconsistent parts of POSIX
8
COMMENT=	Replacement for inconsistent parts of POSIX
8
9
9
LICENSE=	BSL
10
LICENSE=	BSL
(-)b/devel/libfixposix/distinfo (-1 / +1 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1546150128
1
TIMESTAMP = 1638482744
2
SHA256 (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 78fe8bcebf496520ac29b5b65049f5ec1977c6bd956640bdc6d1da6ea04d8504
2
SHA256 (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 78fe8bcebf496520ac29b5b65049f5ec1977c6bd956640bdc6d1da6ea04d8504
3
SIZE (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 40370
3
SIZE (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 40370
(-)b/devel/libfixposix/files/patch-src_lib_sendfile.c (+34 lines)
Added Link Here
1
changes `lfp_sendfile' so it returns the number of bytes sent,
2
mimicking Linux sendfile(2).
3
4
Submited to upstream by Vasily Postnicov (shamaz.mazum@gmail.com),
5
see https://github.com/sionescu/libfixposix/pull/18.
6
7
--- src/lib/sendfile.c.orig	2018-02-19 22:24:10 UTC
8
+++ src/lib/sendfile.c
9
@@ -38,6 +38,9 @@ int sendfile(int, int, off_t, off_t *, void *, int);
10
 #endif
11
 
12
 #include <stdlib.h>
13
+# if defined(__FreeBSD__) || defined(__DragonFly__)
14
+#include <errno.h>
15
+# endif
16
 
17
 DSO_PUBLIC ssize_t
18
 lfp_sendfile(int out_fd, int in_fd, off_t offset, size_t nbytes)
19
@@ -46,8 +49,13 @@ lfp_sendfile(int out_fd, int in_fd, off_t offset, size
20
 # if defined(__linux__)
21
     off_t off = offset;
22
     return (ssize_t) sendfile(out_fd, in_fd, &off, nbytes);
23
-# elif defined(__FreeBSD__)
24
-    return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, SF_MNOWAIT);
25
+# elif defined(__FreeBSD__) || defined(__DragonFly__)
26
+    off_t sbytes;
27
+    int res = sendfile(in_fd, out_fd, offset, nbytes, NULL, &sbytes, 0);
28
+    if (res == -1 && errno == EAGAIN)
29
+        res = 0;
30
+    if (res == 0) res = sbytes;
31
+    return res;
32
 # elif defined(__DragonFly__)
33
     return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, 0);
34
 # elif defined(__APPLE__)

Return to bug 260181