FreeBSD Bugzilla – Attachment 229861 Details for
Bug 260181
devel/libfixposix: cherry pick from upstream and take maintainership
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
devel/libfixposix: Fix lfp_sendfile() and take maintainership
0001-devel-libfixposix-Fix-lfp_sendfile-and-take-maintain.patch (text/plain), 2.91 KB, created by
Filipe da Silva Santos
on 2021-12-03 17:08:40 UTC
(
hide
)
Description:
devel/libfixposix: Fix lfp_sendfile() and take maintainership
Filename:
MIME Type:
Creator:
Filipe da Silva Santos
Created:
2021-12-03 17:08:40 UTC
Size:
2.91 KB
patch
obsolete
>From d1834e4c52ce1345fcf925cf43cf43984bb0b36d Mon Sep 17 00:00:00 2001 >From: Filipe da Silva Santos <contact@shiori.com.br> >Date: Fri, 3 Dec 2021 16:00:30 +0000 >Subject: [PATCH] devel/libfixposix: Fix lfp_sendfile() and take maintainership > >Changes `lfp_sendfile()' so it mimics Linux sendfile(2), returning on >success the number of bytes, instead of just 0. > >(cherry picked from commit fc5bbe41a574e668ccfafb0f15dddd28f6decd31) >--- > devel/libfixposix/Makefile | 3 +- > .../files/patch-src_lib_sendfile.c | 44 +++++++++++++++++++ > 2 files changed, 46 insertions(+), 1 deletion(-) > create mode 100644 devel/libfixposix/files/patch-src_lib_sendfile.c > >diff --git a/devel/libfixposix/Makefile b/devel/libfixposix/Makefile >index eab4ef76c..0bf0e398c 100644 >--- a/devel/libfixposix/Makefile >+++ b/devel/libfixposix/Makefile >@@ -1,9 +1,10 @@ > PORTNAME= libfixposix > DISTVERSIONPREFIX= v > DISTVERSION= 0.4.3 >+PORTREVISION= 1 > CATEGORIES= devel > >-MAINTAINER= ports@FreeBSD.org >+MAINTAINER= ports@shiori.com.br > COMMENT= Replacement for inconsistent parts of POSIX > > LICENSE= BSL >diff --git a/devel/libfixposix/files/patch-src_lib_sendfile.c b/devel/libfixposix/files/patch-src_lib_sendfile.c >new file mode 100644 >index 000000000..c69cc84fa >--- /dev/null >+++ b/devel/libfixposix/files/patch-src_lib_sendfile.c >@@ -0,0 +1,44 @@ >+Changes `lfp_sendfile' so it returns the number of bytes sent, >+mimicking Linux sendfile(2). >+ >+Submited to upstream by Vasily Postnicov (shamaz.mazum@gmail.com), >+see https://github.com/sionescu/libfixposix/pull/18. >+ >+--- src/lib/sendfile.c.orig 2018-02-19 22:24:10 UTC >++++ src/lib/sendfile.c >+@@ -38,6 +38,7 @@ int sendfile(int, int, off_t, off_t *, void *, int); >+ #endif >+ >+ #include <stdlib.h> >++#include <errno.h> >+ >+ DSO_PUBLIC ssize_t >+ lfp_sendfile(int out_fd, int in_fd, off_t offset, size_t nbytes) >+@@ -46,18 +47,21 @@ lfp_sendfile(int out_fd, int in_fd, off_t offset, size >+ # if defined(__linux__) >+ off_t off = offset; >+ return (ssize_t) sendfile(out_fd, in_fd, &off, nbytes); >+-# elif defined(__FreeBSD__) >+- return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, SF_MNOWAIT); >+-# elif defined(__DragonFly__) >+- return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, 0); >++# elif defined(__FreeBSD__) || defined(__DragonFly__) >++ off_t sbytes; >++ int res = sendfile(in_fd, out_fd, offset, nbytes, NULL, &sbytes, 0); >++ if (res == 0) { return sbytes; } >++ return res; >+ # elif defined(__APPLE__) >+ off_t len = nbytes; >+- return (ssize_t) sendfile(in_fd, out_fd, offset, &len, NULL, 0); >++ int res = sendfile(in_fd, out_fd, offset, &len, NULL, 0); >++ if (res == 0) { return len; } >++ return -1; >+ # else >+ # error "It appears that this OS has sendfile(), but LFP doesn't use it at the moment" >+ # error "Please send an email to iolib-devel@common-lisp.net" >+ # endif >+ #else >+- return ENOSYS; >++ SYSERR(ENOSYS); >+ #endif >+ } >-- >2.34.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 260181
:
229851
|
229852
| 229861