libmicrohttpd

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

commit 9569a609edc067b018be8182424e54de41df2fdc
parent 40f884cbb9c51975c1ea4a655c8c1813376ff788
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 12 Aug 2013 21:51:47 +0000

-document select/shutdown issue on W32, move z/os documentation into manual

Diffstat:
MChangeLog | 3+++
MREADME | 21---------------------
Mdoc/libmicrohttpd.texi | 38++++++++++++++++++++++++++++++++++++--
3 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,6 @@ +Mon Aug 12 23:51:18 CEST 2013 + Updated manual, documenting W32 select/shutdown issue. -CG + Sat Aug 10 21:01:18 CEST 2013 Trying to fix #2983 (untested). -CG diff --git a/README b/README @@ -139,26 +139,5 @@ In particular, we should write tests for: Missing documentation: ====================== -- libmicrohttpd manual: - * document details on porting MHD (plibc, z/OS) - libmicrospdy manual: * missing entirely - - -Notes on compiling on z/OS: -=========================== - -After extracting the archive, run - -iconv -f UTF-8 -t IBM-1047 contrib/ascebc > /tmp/ascebc.sh -chmod +x /tmp/ascebc.sh -for n in `find * -type f` -do - /tmp/ascebc.sh $n -done - -to convert all source files to EBCDIC. Note that you must run -"configure" from the directory where the configure script is -located. Otherwise, configure will fail to find the -"contrib/xcc" script (which is a wrapper around the z/OS c89 -compiler). diff --git a/doc/libmicrohttpd.texi b/doc/libmicrohttpd.texi @@ -13,7 +13,7 @@ This manual is for GNU libmicrohttpd (version @value{VERSION}, @value{UPDATED}), a library for embedding an HTTP(S) server into C applications. -Copyright @copyright{} 2007--2012 Christian Grothoff +Copyright @copyright{} 2007--2013 Christian Grothoff @quotation Permission is granted to copy, distribute and/or modify this document @@ -267,9 +267,9 @@ specifies path to libgcrypt installation specifies path to libgnutls installation - @end table + @section Including the microhttpd.h header @cindex portability @cindex microhttpd.h @@ -358,6 +358,40 @@ to define both in "platform.h" if you need to change the definition for the specific platform. +@section Portability to W32 + +On W32, GNUnet requires PlibC, a lightweight library to provide some +more POSIX-like calls on W32. While PlibC takes care of most issues, +it is unable to make @code{select} (or equivalent alternative socket +calls) unblock when a socket is @code{shutdown}. This can be +problematic if MHD is used in ``one thread per connection'' mode. In +this case, an inactive TCP connection may block @code{MHD_stop_daemon} +until the connection times out. You may be able to mitigate the issue +by setting a reasonably low timeout, but in general we of course +recommend migrating away from Windows. Using MHD with other types of +event loops is unaffected by this issue. + + +@section Portability to z/OS + +To compile MHD on z/OS, extract the archive and run + +@verbatim +iconv -f UTF-8 -t IBM-1047 contrib/ascebc > /tmp/ascebc.sh +chmod +x /tmp/ascebc.sh +for n in `find * -type f` +do + /tmp/ascebc.sh $n +done +@end verbatim +to convert all source files to EBCDIC. Note that you must run +@code{configure} from the directory where the configure script is +located. Otherwise, configure will fail to find the +@code{contrib/xcc} script (which is a wrapper around the z/OS c89 +compiler). + + + @c ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @c ------------------------------------------------------------