X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilchttp%2Fsilchttpserver.h;fp=lib%2Fsilchttp%2Fsilchttpserver.h;h=0000000000000000000000000000000000000000;hp=36faf5a5dc70b0229e8ec98292b03bc469bbeafb;hb=faa97fdb56d0b85042a5d0149b73ce7022f04398;hpb=08e0dddd6750b245da53e2bc3528d0b5a6d57e8b diff --git a/lib/silchttp/silchttpserver.h b/lib/silchttp/silchttpserver.h deleted file mode 100644 index 36faf5a5..00000000 --- a/lib/silchttp/silchttpserver.h +++ /dev/null @@ -1,232 +0,0 @@ -/* - - silchttpserver.h - - Author: Pekka Riikonen - - Copyright (C) 2006 - 2007 Pekka Riikonen - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -*/ - -/****h* silchttp/SILC HTTP Server Interface - * - * DESCRIPTION - * - * 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. 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 - * - * SYNOPSIS - * - * typedef void (*SilcHttpServerCallback)(SilcHttpServer httpd, - * SilcHttpConnection conn, - * const char *uri, - * const char *method, - * SilcBuffer data, - * void *context); - * - * DESCRIPTION - * - * 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 - * the POST data. - * - * The requested web page must be returned to the HTTP client from this - * callback by calling silc_http_server_send or error is returned by - * calling silc_http_server_send_error. - * - * The silc_http_server_get_header may be called to find a specific - * HTTP header from this request. New headers may be added to the - * reply by calling silc_http_server_add_header. - * - ***/ -typedef void (*SilcHttpServerCallback)(SilcHttpServer httpd, - SilcHttpConnection conn, - const char *uri, - const char *method, - SilcBuffer data, - void *context); - -/****f* silchttp/SilcHTTPServer/silc_http_server_alloc - * - * SYNOPSIS - * - * SilcHttpServer - * silc_http_server_alloc(const char *ip, SilcUInt16 port, - * SilcSchedule schedule, - * SilcHttpServerCallback callback, void *context); - * - * DESCRIPTION - * - * Allocates HTTP server and binds it to the IP address `ip' on the - * `port'. The `callback' with `context' will be called everytime a new - * HTTP request comes to the server from a HTTP client. In that callback - * the caller must then reply with the requested Web page or with error. - * If the `schedule' is NULL this will call silc_schedule_get_global to - * try to get global scheduler. - * - ***/ -SilcHttpServer silc_http_server_alloc(const char *ip, SilcUInt16 port, - SilcSchedule schedule, - SilcHttpServerCallback callback, - void *context); - -/****f* silchttp/SilcHTTPServer/silc_http_server_free - * - * SYNOPSIS - * - * void silc_http_server_free(SilcHttpServer httpd); - * - * DESCRIPTION - * - * Close HTTP server and free all resources. - * - ***/ -void silc_http_server_free(SilcHttpServer httpd); - -/****f* silchttp/SilcHTTPServer/silc_http_server_send - * - * SYNOPSIS - * - * SilcBool silc_http_server_send(SilcHttpServer httpd, - * SilcHttpConnection conn, - * SilcBuffer data); - * - * DESCRIPTION - * - * Send the HTTP data indicated by `data' buffer into the connection - * indicated by `conn'. Returns TRUE after the data is sent, and FALSE - * if error occurred. Usually the `data' would be the requested web page. - * - ***/ -SilcBool silc_http_server_send(SilcHttpServer httpd, - SilcHttpConnection conn, - SilcBuffer data); - -/****f* silchttp/SilcHTTPServer/silc_http_server_send_error - * - * SYNOPSIS - * - * SilcBool silc_http_server_send_error(SilcHttpServer httpd, - * SilcHttpConnection conn, - * const char *error, - * const char *error_message); - * - * DESCRIPTION - * - * Send HTTP error back to the connection indicated by `conn'. The - * `error' is one of the 4xx or 5xx errors defined by the HTTP protocol. - * The `error_message' is the optional error message sent to the - * connection. Returns FALSE if the error could not be sent. - * - * Typical errors are: 400 Bad Request - * 403 Forbidden - * 404 Not Found - * - * EXAMPLE - * - * silc_http_server_send_error(httpd, conn, "400 Bad Request", - * "

400 Bad Request!!

"); - * - ***/ -SilcBool silc_http_server_send_error(SilcHttpServer httpd, - SilcHttpConnection conn, - const char *error, - const char *error_message); - -/****f* silchttp/SilcHTTPServer/silc_http_server_get_header - * - * SYNOPSIS - * - * const char *silc_http_server_get_header(SilcHttpServer httpd, - * SilcHttpConnection conn, - * const char *field); - * - * DESCRIPTION - * - * Finds a header field indicated by `field' from the current HTTP - * request sent by the HTTP client. Returns the field value or NULL - * if such header field does not exist. - * - ***/ -const char *silc_http_server_get_header(SilcHttpServer httpd, - SilcHttpConnection conn, - const char *field); - -/****f* silchttp/SilcHTTPServer/silc_http_server_add_header - * - * SYNOPSIS - * - * SilcBool silc_http_server_add_header(SilcHttpServer httpd, - * SilcHttpConnection conn, - * const char *field, - * const char *value); - * - * DESCRIPTION - * - * Adds a new header to the HTTP headers to be sent back to the - * HTTP client. This may be called to add needed headers to the - * HTTP reply. - * - * 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, - SilcHttpConnection conn, - const char *field, - const char *value); - -#endif /* SILCHTTPSERVER_H */