libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit cf741b6cbcdaef6f36a854c159b558dde834a75a
parent c04fb9d4263385c7f0b11fa9afa0d4181da92cd0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 19 Aug 2010 12:37:20 +0000

changing default feature set to include HTTPS and allowing disabling of post processor

Diffstat:
MChangeLog | 8+++++++-
MREADME | 21++++++++++++++-------
Mconfigure.ac | 50+++++++++++++++++++++++++++++++++-----------------
Msrc/daemon/Makefile.am | 6+++++-
4 files changed, 59 insertions(+), 26 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,8 +1,14 @@ +Thu Aug 19 14:15:01 CEST 2010 + Changed code to enable error messages and HTTPS by default; + added option to disable post processor API (use + breaks binary compatibility, should only be done + for embedded systems that require minimal footprint). -CG + Thu Aug 19 13:26:00 CEST 2010 Patches for Windows to ease compilation trouble. -GT/CG Sat Aug 14 15:43:30 CEST 2010 - Fixed small, largely hypothetical leaks. + Fixed small, largely hypothetical leaks. Reduced calls to strlen for header processing. -CG Fri Aug 6 12:51:59 CEST 2010 diff --git a/README b/README @@ -16,17 +16,24 @@ If you are using Subversion, run "autoreconf -fi" to create configure. In order to run the testcases, you need a recent version of libcurl. libcurl is not required if you just want to install the library. +Especially for development, do use the MHD_USE_DEBUG option to get +error messages. + Configure options ================= -Especially for development, use "--enable-messages" to enable error -reporting (and use MHD_USE_DEBUG). Error reporting is not enabled by -default to reduce the size of the library (error messages take -space!). If you are concerned about space, you should set "CFLAGS" to -"-Os -fomit-frame-pointer" to have gcc generate tight code. The -resulting binary should be about 30k (without SSL support) depending -on the platform. + +If you are concerned about space, you should set "CFLAGS" to "-Os +-fomit-frame-pointer" to have gcc generate tight code. + +You can use the following options to disable certain MHD features: + +--disable-https: no HTTPS / TLS / SSL support (significant reduction) +--disable-messages: no error messages (they take space!) +--disable-postprocessor: no MHD_PostProcessor API + +The resulting binary should be about 32k depending on the platform. Portability diff --git a/configure.ac b/configure.ac @@ -222,17 +222,32 @@ AC_FUNC_FSEEKO # optional: have error messages ? AC_MSG_CHECKING(whether to enable error messages) AC_ARG_ENABLE(messages, - [AS_HELP_STRING([--enable-messages], - [enable MHD error messages])], - [enable_messages=$enableval], - [enable_messages="no"]) -AC_MSG_RESULT($enable_messages) -if test "$enable_messages" = "yes" + [AS_HELP_STRING([--disable-messages], + [disable MHD error messages])], + [disable_messages=$enableval], + [disable_messages="no"]) +AC_MSG_RESULT($disable_messages) +if test "$disable_messages" = "no" then AC_DEFINE([HAVE_MESSAGES],[1],[Include error messages]) fi +# optional: have postprocessor? +AC_MSG_CHECKING(whether to enable postprocessor) +AC_ARG_ENABLE(postprocessor, + [AS_HELP_STRING([--disable-postprocessor], + [disable MHD PostProcessor functionality])], + [disable_postprocessor=$enableval], + [disable_postprocessor="no"]) +AC_MSG_RESULT($disable_postprocessor) +if test "$disable_postprocessor" = "no" +then + AC_DEFINE([HAVE_POSTPROCESSOR],[1],[Include postprocessor]) +fi +AM_CONDITIONAL([HAVE_POSTPROCESSOR],test x$disable_postprocessor = xno) + + # optional: have zzuf, socat? AC_CHECK_PROG([HAVE_ZZUF],[zzuf], 1, 0) AC_CHECK_PROG([HAVE_SOCAT],[socat], 1, 0) @@ -284,11 +299,11 @@ AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have gnutls]) # optional: HTTPS support. Enabled by default AC_MSG_CHECKING(whether to enable HTTPS support) AC_ARG_ENABLE([https], - [AS_HELP_STRING([--enable-https], - [enable HTTPS support (default is yes)])], - [enable_https=$enableval], - [enable_https="yes"]) -if test "$enable_https" = "yes" + [AS_HELP_STRING([--disable-https], + [disable HTTPS support (default is enabled)])], + [disable_https=$enableval], + [disable_https="no"]) +if test "$disable_https" = "no" then if test "$gcrypt" = "true" -a "$gnutls" = "true" then @@ -301,9 +316,9 @@ then else AC_DEFINE([HTTPS_SUPPORT],[0],[disable HTTPS support]) fi -AC_MSG_RESULT($enable_https) +AC_MSG_RESULT($disable_https) -AM_CONDITIONAL(ENABLE_HTTPS, test "$enable_https" = "yes") +AM_CONDITIONAL(ENABLE_HTTPS, test "$disable_https" = "no") MHD_LIB_LDFLAGS="-export-dynamic -no-undefined" @@ -375,14 +390,15 @@ fi AC_MSG_NOTICE([Configuration Summary: Operating System: ${host_os} - Target directory: ${prefix} - Messages: ${enable_messages} libgcrypt: ${MSG_GCRYPT} libcurl (testing): ${MSG_CURL} - HTTPS support: ${enable_https} + Target directory: ${prefix} + Messages disabled: ${disable_messages} + Postproc disabled: ${disable_postprocessor} + HTTPS disabled: ${disable_https} ]) -if test "$enable_https" = "yes" +if test "$disable_https" = "no" then AC_MSG_NOTICE([HTTPS subsystem configuration: License : LGPL only diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am @@ -13,13 +13,17 @@ EXTRA_DIST = EXPORT.sym lib_LTLIBRARIES = \ libmicrohttpd.la +if HAVE_POSTPROCESSOR + SUPPORT_POSTPROCESSOR = postprocessor.c +endif + libmicrohttpd_la_SOURCES = \ connection.c connection.h \ reason_phrase.c reason_phrase.h \ daemon.c \ internal.c internal.h \ memorypool.c memorypool.h \ - postprocessor.c \ + $(SUPPORT_POSTPROCESSOR) \ response.c response.h libmicrohttpd_la_LDFLAGS = \ $(MHD_LIB_LDFLAGS) \