libmicrohttpd

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

commit e9a319277b58c9d55629cdd8d34a82cc7bee640e
parent c0f2ca60ba248c98e51da4efa78e8a4f9a61c133
Author: Andrey Uzunov <andrey.uzunov@gmail.com>
Date:   Sun, 11 Aug 2013 22:28:06 +0000

spdy: comments/readme added/changed

Diffstat:
MREADME | 11+++++------
Msrc/include/microspdy.h | 21++++++++++++++++-----
Msrc/spdy2http/proxy.c | 2++
3 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/README b/README @@ -8,9 +8,9 @@ protocol. The main application must still provide the application logic to generate the content. Additionally, a second, still very experimental library is provided -for SPDY/HTTP 2.0 support. libmicrospdy provides a compact API and -implementation of SPDY server. libmicrospdy currently only implements -version 3 of SPDY and accepts only TLS connections. +for SPDY (the base for HTTP 2.0) support. libmicrospdy provides a +compact API and implementation of SPDY server. libmicrospdy currently +only implements partially version 3 of SPDY. Installation @@ -108,12 +108,10 @@ a file will block all responses with same or smaller priority - Find the best way for closing still opened stream (new call or existing) - SPDY_is_stream_opened - SPDY PING (used often by browsers) -- SPDY WINDOW_UPDATE - used often by browsers +- receiving SPDY WINDOW_UPDATE - SPDY Settings - SPDY PUSH - SPDY HEADERS -- HTTP POST over SPDY and receiving DATA frames -- HTTP PUT over SPDY - SPDY Credentials Additional ideas for features include: @@ -132,6 +130,7 @@ Unimplemented API functions of libmicrospdy: In particular, we should write tests for: - Enqueueing responses while considering request priorities. +- HTTP methods other than GET diff --git a/src/include/microspdy.h b/src/include/microspdy.h @@ -42,8 +42,17 @@ * "platform.h" in the libmicrospdy distribution).<p> * * All of the functions returning SPDY_YES/SPDY_NO return - * SPDY_INPUT_ERROR when any of the parameters are invalid, e.g., - * required parameter is NULL. + * SPDY_INPUT_ERROR when any of the parameters are invalid, e.g. + * required parameter is NULL.<p> + * + * The library does not check if anything at the application layer -- + * requests and responses -- is correct. For example, it + * is up to the user to check if a client is sending HTTP body but the + * method is GET.<p> + * + * The SPDY flow control is just partially implemented: the receiving + * window is updated, and the client is notified, to prevent a client + * from stop sending POST body data, for example. */ #ifndef SPDY_MICROSPDY_H #define SPDY_MICROSPDY_H @@ -647,8 +656,10 @@ typedef int * @param more a flag saying if more data related to the request is * expected to be received. HTTP body may arrive (e.g. POST data); * then SPDY_NewDataCallback will be called for the connection. - * It is also possible that more headers/trailers may arrive; - * then the same callback will be invoked. + * It is also possible that more headers/trailers arrive; + * then the same callback will be invoked. The user should detect + * that it is not the first invocation of the function for that + * request. */ typedef void (*SPDY_NewRequestCallback) (void * cls, struct SPDY_Request * request, @@ -851,7 +862,7 @@ SPDY_set_panic_func (SPDY_PanicCallback cb, * established by a client * @param sccb callback called when a session is closed * @param nrcb callback called when a client sends request - * @param npdcb callback called when HTTP POST params are received + * @param npdcb callback called when HTTP body (POST data) is received * after request * @param cls common extra argument to all of the callbacks * @param ... list of options (type-value pairs, diff --git a/src/spdy2http/proxy.c b/src/spdy2http/proxy.c @@ -28,6 +28,8 @@ * is a lot of data pointed from it) * - Correct recapitalizetion of header names before giving the headers * to curl. + * - curl does not close sockets when connection is closed and no + * new sockets are opened (they stay in CLOSE_WAIT) * @author Andrey Uzunov */