00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ISC_HTTPD_H
00020 #define ISC_HTTPD_H 1
00021
00022
00023
00024 #include <isc/event.h>
00025 #include <isc/eventclass.h>
00026 #include <isc/types.h>
00027 #include <isc/mutex.h>
00028 #include <isc/task.h>
00029 #include <isc/time.h>
00030
00031
00032
00033
00034
00035
00036
00037
00038 struct isc_httpdurl {
00039 char *url;
00040 isc_httpdaction_t *action;
00041 void *action_arg;
00042 isc_boolean_t isstatic;
00043 isc_time_t loadtime;
00044 ISC_LINK(isc_httpdurl_t) link;
00045 };
00046
00047 #define HTTPD_EVENTCLASS ISC_EVENTCLASS(4300)
00048 #define HTTPD_SHUTDOWN (HTTPD_EVENTCLASS + 0x0001)
00049
00050 #define ISC_HTTPDMGR_FLAGSHUTTINGDOWN 0x00000001
00051
00052
00053
00054
00055
00056 isc_result_t
00057 isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task,
00058 isc_httpdclientok_t *client_ok,
00059 isc_httpdondestroy_t *ondestory, void *cb_arg,
00060 isc_timermgr_t *tmgr, isc_httpdmgr_t **httpdp);
00061
00062 void
00063 isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdp);
00064
00065 isc_result_t
00066 isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
00067 isc_httpdaction_t *func, void *arg);
00068
00069 isc_result_t
00070 isc_httpdmgr_addurl2(isc_httpdmgr_t *httpdmgr, const char *url,
00071 isc_boolean_t isstatic,
00072 isc_httpdaction_t *func, void *arg);
00073
00074 isc_result_t
00075 isc_httpd_response(isc_httpd_t *httpd);
00076
00077 isc_result_t
00078 isc_httpd_addheader(isc_httpd_t *httpd, const char *name,
00079 const char *val);
00080
00081 isc_result_t
00082 isc_httpd_addheaderuint(isc_httpd_t *httpd, const char *name, int val);
00083
00084 isc_result_t isc_httpd_endheaders(isc_httpd_t *httpd);
00085
00086 #endif