From 1ee67aedd55b452c7d5851d0e39e01aef4aca766 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 10 Feb 2016 21:53:15 +0100 Subject: dnbd3server build success on freebsd :) --- src/server/net.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/server/net.c') diff --git a/src/server/net.c b/src/server/net.c index d840718..b919d62 100644 --- a/src/server/net.c +++ b/src/server/net.c @@ -28,9 +28,17 @@ #include "../shared/sockhelper.h" #include "../serialize.h" -#include #include +#ifdef __linux__ +#include +#endif +#ifdef __FreeBSD__ +#include +#include +#include +#endif + static char nullbytes[500]; static uint64_t totalBytesSent = 0; @@ -350,7 +358,12 @@ void *net_client_handler(void *dnbd3_client) realBytes = image->realFilesize - request.offset; } while ( done < realBytes ) { +#ifdef __linux__ const ssize_t ret = sendfile( client->sock, image_file, &offset, realBytes - done ); +#elif defined(__FreeBSD__) + off_t sent; + int ret = sendfile( image_file, client->sock, offset, realBytes - done, NULL, &sent, 0 ); +#endif if ( ret <= 0 ) { const int err = errno; if ( lock ) pthread_mutex_unlock( &client->sendMutex ); -- cgit v1.2.3-55-g7522