| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- About
- =====
- libmicrohttpd is a GNU library (part of the GNU project) written in C
- that provides a compact API and implementation of an HTTP 1.1 web
- server (HTTP 1.0 is also supported). libmicrohttpd only implements
- the HTTP 1.1 protocol. The main application must still provide the
- content.
- Installation
- ============
- 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
- =================
- 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
- --disable-dauth: no digest authentication API
- The resulting binary should be about 30-40k depending on the platform.
- Portability
- ===========
- The latest version of libmicrohttpd will try to avoid SIGPIPE on its
- sockets. This should work on OS X, Linux and recent BSD systems (at
- least). On other systems that may trigger a SIGPIPE on send/recv, the
- main application should install a signal handler to handle SIGPIPE.
- libmicrohttpd should work well on GNU/Linux, BSD, OS X, W32 and z/OS.
- Note that HTTPS is not supported on z/OS (yet). We also have reports
- of users using it on vxWorks and Symbian. Note that on platforms
- where the compiler does not support the "constructor" attribute, you
- must call "MHD_init" before using any MHD functions and "MHD_fini"
- after you are done using MHD.
- 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).
- Development Status
- ==================
- This is a beta release. Below we list things that should be
- implemented (in order of importance) before we can claim to be
- reasonably complete.
- Untested features:
- ==================
- - add testcases for http/1.1 pipelining (need
- to figure out how to ensure curl pipelines
- -- and it seems libcurl has issues with pipelining,
- see http://curl.haxx.se/mail/lib-2007-12/0248.html)
- - add testcases for resource limit enforcement
- - add testcases for client queuing early response,
- suppressing 100 CONTINUE
- - extend testcase for chunked encoding to validate
- handling of footers
- - more testing for SSL support
- - MHD basic and digest authentication
- Functions not covered by "make check":
- ======================================
- - file_reader (response.c); special case (sendfile)
- - mhd_panic_std (daemon.c); special case (abort)
- - parse_options (daemon.c)
- - MHD_set_panic_func (daemon.c)
- - MHD_get_version (daemon.c)
- Missing documentation:
- ======================
- - manual:
- * document configuration options
- * document details on porting MHD (plibc, z/OS)
|