Merge changes from team/russell/http_filetxfer

Handle transferring large files from the built-in http server.  Previously, the
code attempted to malloc a block as large as the file itself.  Now it uses the
sendfile() system call so that the file isn't copied into userspace at all if
it is available.  Otherwise, it just uses a read/write of small chunks at a time.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@72701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2007-06-29 20:35:09 +00:00
parent 3caa225108
commit 408dbc4304
6 changed files with 119 additions and 29 deletions

View File

@@ -364,6 +364,23 @@ AC_CHECK_HEADER([libkern/OSAtomic.h],
AC_CHECK_SIZEOF(int)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[#include <stdlib.h>
#include <sys/sendfile.h>],
[sendfile(1, 0, NULL, 1);])
],[
AC_MSG_RESULT(yes)
have_sendfile=yes
],[
AC_MSG_RESULT(no)
have_sendfile=no
]
)
if test "${have_sendfile}" = "yes"; then
AC_DEFINE([HAVE_SENDFILE], 1, [Define if your system has the sendfile syscall.])
fi
# do the package library checks now
AST_EXT_LIB_CHECK([ALSA], [asound], [snd_spcm_init], [alsa/asoundlib.h], [-lm -ldl])