--- libs/libmythupnp/httprequest.cpp~ Fri Mar 16 08:25:39 2007 +++ libs/libmythupnp/httprequest.cpp Fri Mar 16 08:40:32 2007 @@ -21,8 +21,12 @@ #ifdef CONFIG_DARWIN #include "darwin-sendfile.h" #else +#ifdef __FreeBSD__ +typedef off_t __off64_t; +#else #include #endif +#endif #include #include #include @@ -289,6 +293,24 @@ __off64_t offset = llStart; int file = open( sFileName.ascii(), O_RDONLY | O_LARGEFILE ); ssize_t sent = 0; +#ifdef __FreeBSD__ + + int error; + error = sendfile (file, + getSocketHandle (), + offset, + llSize, + NULL, + NULL, + NULL ); + if (error) + fprintf (stderr, + "Can't transfer %s: %s (%d)\n", + sFileName.ascii(), + strerror (errno), + errno ); + +#else do { @@ -301,6 +319,7 @@ llSize -= sent; } while (( sent >= 0 ) && ( llSize > 0 )); +#endif close( file ); }