* Very simple HTTP server interface. This HTTP server supports basic HTTP
* features. All pages on the server are dynamically created by the caller
* of this interface. The server does not support plugins, modules, cgi-bin,
- * server-side includes or any other special features.
+ * server-side includes or any other special features. Naturally, the caller
+ * of this interface may itself implement such features.
*
***/
#ifndef SILCHTTPSERVER_H
#define SILCHTTPSERVER_H
+/****s* silchttp/SilcHTTPServer/SilcHttpServer
+ *
+ * NAME
+ *
+ * typedef struct SilcHttpServerStruct *SilcHttpServer;
+ *
+ * DESCRIPTION
+ *
+ * The actual HTTP server allocated with silc_http_server_alloc and
+ * freed with silc_http_server_free.
+ *
+ ***/
typedef struct SilcHttpServerStruct *SilcHttpServer;
+
+/****s* silchttp/SilcHTTPServer/SilcHttpConnection
+ *
+ * NAME
+ *
+ * typedef struct SilcHttpConnectionStruct *SilcHttpConnection;
+ *
+ * DESCRIPTION
+ *
+ * HTTP connection context. This is allocated by the library and
+ * delivered to application in SilcHttpServerCallback callbcak function.
+ * It is given as argument to many silc_http_server_* functions.
+ * It is freed automatically by the library.
+ *
+ ***/
typedef struct SilcHttpConnectionStruct *SilcHttpConnection;
/****f* silchttp/SilcHTTPServer/SilcHttpServerCallback
*
* DESCRIPTION
*
- * The HTTP request callback, that is called everytime a new HTTP request
+ * The HTTP request callback that is called everytime a new HTTP request
* comes from a HTTP client. The `uri' is the requested URI (web page),
* and the `method' is the HTTP request method (GET, POST, etc.). The
* `data' is non-NULL only if the `method' is POST, and it includes the
***/
void silc_http_server_free(SilcHttpServer httpd);
-/****f* silchttp/SilcHTTPServer/silc_http_server_free
+/****f* silchttp/SilcHTTPServer/silc_http_server_send
*
* SYNOPSIS
*
SilcHttpConnection conn,
SilcBuffer data);
-/****f* silchttp/SilcHTTPServer/silc_http_server_free
+/****f* silchttp/SilcHTTPServer/silc_http_server_send_error
*
* SYNOPSIS
*
*
* Finds a header field indicated by `field' from the current HTTP
* request sent by the HTTP client. Returns the field value or NULL
- * if suchs header field does not exist.
+ * if such header field does not exist.
*
***/
const char *silc_http_server_get_header(SilcHttpServer httpd,
* EXAMPLE
*
* silc_http_server_add_header(httpd, conn, "Content-Type", "image/jpeg");
+ * silc_http_server_send(httpd, conn, image_data);
*
***/
SilcBool silc_http_server_add_header(SilcHttpServer httpd,