fixed sendfile() for freebsd

This commit is contained in:
2014-11-08 16:10:35 +00:00
parent 3ab19cb3b8
commit ca04358d50
4 changed files with 60 additions and 50 deletions

View File

@ -441,8 +441,21 @@ static QSE_INLINE qse_ssize_t __send_file (
qse_fio_hnd_t fh;
fh = qse_fio_gethandle (HANDLE_TO_FIO(in_fd));
#if defined(__FreeBSD__)
{
off_t nsent;
ret = sendfile (fh, out_fd, *offset, count, QSE_NULL, &nsent, 0);
if (ret == 0)
{
*offset += nsent;
ret = nsent;
}
else qse_httpd_seterrnum (httpd, SKERR_TO_ERRNUM());
}
#else
ret = sendfile (out_fd, fh, offset, count);
if (ret <= -1) qse_httpd_seterrnum (httpd, SKERR_TO_ERRNUM());
#endif
return ret;
#elif defined(HAVE_SENDFILE64)