aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README127
1 files changed, 91 insertions, 36 deletions
diff --git a/README b/README
index 179338bf..5beded78 100644
--- a/README
+++ b/README
@@ -7,6 +7,11 @@ is also supported). GNU libmicrohttpd only implements the HTTP 1.1
7protocol. The main application must still provide the application 7protocol. The main application must still provide the application
8logic to generate the content. 8logic to generate the content.
9 9
10Additionally, a second, still very experimental library is provided
11for SPDY/HTTP 2.0 support. libmicrospdy provides a compact API and
12implementation of SPDY server. libmicrospdy currently only implements
13version 3 of SPDY and accepts only TLS connections.
14
10 15
11Installation 16Installation
12============ 17============
@@ -20,6 +25,21 @@ Especially for development, do use the MHD_USE_DEBUG option to get
20error messages. 25error messages.
21 26
22 27
28Requirements for libmicrospdy
29=============================
30
31The following packages are needed to build libmicrospdy:
32
33* zlib
34* OpenSSL >= 1.0.1
35
36To run the test cases, involving requests, version of Spdylay, supporting
37SPDY v3, is required. Spdylay is still under development and can be
38found here:
39
40http://spdylay.sourceforge.net/
41
42
23Configure options 43Configure options
24================= 44=================
25 45
@@ -53,58 +73,93 @@ must call "MHD_init" before using any MHD functions and "MHD_fini"
53after you are done using MHD. 73after you are done using MHD.
54 74
55 75
56Notes on compiling on z/OS:
57---------------------------
58
59After extracting the archive, run
60
61iconv -f UTF-8 -t IBM-1047 contrib/ascebc > /tmp/ascebc.sh
62chmod +x /tmp/ascebc.sh
63for n in `find * -type f`
64do
65 /tmp/ascebc.sh $n
66done
67
68to convert all source files to EBCDIC. Note that you must run
69"configure" from the directory where the configure script is
70located. Otherwise, configure will fail to find the
71"contrib/xcc" script (which is a wrapper around the z/OS c89
72compiler).
73
74
75Development Status 76Development Status
76================== 77==================
77 78
78This is a beta release. Below we list things that should be 79This is a beta release for libmicrohttpd. Before declaring the
79implemented (in order of importance) before we can claim to be 80library stable, we should implement support for HTTP "Upgrade"
80reasonably complete. 81requests and have testcases for the following features:
81
82 82
83Untested features: 83- HTTP/1.1 pipelining (need to figure out how to ensure curl pipelines
84==================
85- add testcases for http/1.1 pipelining (need
86 to figure out how to ensure curl pipelines
87 -- and it seems libcurl has issues with pipelining, 84 -- and it seems libcurl has issues with pipelining,
88 see http://curl.haxx.se/mail/lib-2007-12/0248.html) 85 see http://curl.haxx.se/mail/lib-2007-12/0248.html)
89- add testcases for resource limit enforcement 86- resource limit enforcement
90- add testcases for client queuing early response, 87- client queuing early response, suppressing 100 CONTINUE
91 suppressing 100 CONTINUE 88- chunked encoding to validate handling of footers
92- extend testcase for chunked encoding to validate
93 handling of footers
94- more testing for SSL support 89- more testing for SSL support
95- MHD basic and digest authentication 90- MHD basic and digest authentication
96 91
97 92In particular, the following functions are not covered by 'make check':
98Functions not covered by "make check":
99======================================
100- mhd_panic_std (daemon.c); special case (abort) 93- mhd_panic_std (daemon.c); special case (abort)
101- parse_options (daemon.c) 94- parse_options (daemon.c)
102- MHD_set_panic_func (daemon.c) 95- MHD_set_panic_func (daemon.c)
103- MHD_get_version (daemon.c) 96- MHD_get_version (daemon.c)
104 97
105 98
99This is an early alpha release for libmicrospdy. The following things
100should be implemented (in order of importance) before we can claim to
101be reasonably complete:
102- Change session timeout to use not seconds but something more precise
103- SPDY RST_STREAM sending on each possible error (DONE?)
104- SPDY_close_session
105- Find the best way for closing still opened stream (new call or existing)
106- SPDY_is_stream_opened
107- SPDY PING (used often by browsers)
108- SPDY WINDOW_UPDATE - used often by browsers
109- SPDY Settings
110- SPDY PUSH
111- SPDY HEADERS
112- HTTP POST over SPDY and receiving DATA frames
113- HTTP PUT over SPDY
114- SPDY Credentials
115
116Additional ideas for features include:
117- Individual callbacks for each session
118- Individual timeout for each session
119- Setting number of frames that can be written to the output at once.
120 A big number means faster sending of a big resource, but the other
121 sessions will wait longer.
122
123Unimplemented API functions of libmicrospdy:
124- SPDY_settings_create ();
125- SPDY_settings_add (...);
126- SPDY_settings_lookup (...);
127- SPDY_settings_iterate (...);
128- SPDY_settings_destroy (...);
129- SPDY_close_session(...);
130- SPDY_send_ping(...);
131- SPDY_send_settings (...);
132
133In particular, we should write tests for:
134- Enqueueing responses while considering request priorities.
135
136
137
138
139
106Missing documentation: 140Missing documentation:
107====================== 141======================
108 142
109- manual: 143- libmicrohttpd manual:
110 * document details on porting MHD (plibc, z/OS) 144 * document details on porting MHD (plibc, z/OS)
145- libmicrospdy manual:
146 * missing entirely
147
148
149Notes on compiling on z/OS:
150===========================
151
152After extracting the archive, run
153
154iconv -f UTF-8 -t IBM-1047 contrib/ascebc > /tmp/ascebc.sh
155chmod +x /tmp/ascebc.sh
156for n in `find * -type f`
157do
158 /tmp/ascebc.sh $n
159done
160
161to convert all source files to EBCDIC. Note that you must run
162"configure" from the directory where the configure script is
163located. Otherwise, configure will fail to find the
164"contrib/xcc" script (which is a wrapper around the z/OS c89
165compiler).