Main Page | Modules | Data Structures | File List | Data Fields

/extra/work/state-dev/src/sul/sul_httpd.h

00001 /* ----------------------------------------------------------------------------
00002  * @(#) $Header: /home/systems/jlewalle/dev/jacob-cvs/projects/state/src/sul/sul_httpd.h,v 1.10 2003/10/06 20:48:05 jlewalle Exp $
00003  *
00004  * --------------------------------------------------------------------------*/
00005 #if !defined(_INCLUDED_SUL_HTTPD_H_HEADER__)
00006 #define _INCLUDED_SUL_HTTPD_H_HEADER__
00007 
00014 typedef enum min_req_url_code_e
00015 {
00016   URL_BAD_REQUEST,
00017   URL_NOT_FOUND,
00018   URL_OK
00019 } min_req_url_code_e;
00020 
00024 typedef enum
00025 {
00027   MINI_RT_UNKNOWN = 0,
00028 
00030   MINI_RT_HTTP_POST = 1,
00031 
00033   MINI_RT_HTTP_GET = 2
00034 } min_req_type_t;
00035 
00039 typedef struct mini_httpd_t mini_httpd_t;
00040 
00044 typedef struct mini_req_t mini_req_t;
00045 
00049 typedef struct mini_hook_t mini_hook_t;
00050 
00057 typedef sul_error_t *(*mini_handler_fnptr_t)(mini_req_t *req, apr_pool_t *pool);
00058 
00064 typedef sul_boolean_t (*mini_access_fnptr_t)(mini_req_t *req, apr_pool_t *pool);
00065 
00074 SUL_DECLARE(sul_error_t *)
00075 mini_httpd_create(mini_httpd_t **self, short port, apr_pool_t *pool);
00076 
00077 SUL_DECLARE(sul_error_t *)
00078 mini_httpd_listen(mini_httpd_t *httpd, apr_pool_t *pool);
00079 
00092 SUL_DECLARE(sul_error_t *)
00093 mini_httpd_add_hook(mini_httpd_t *self, const char *url, 
00094                     mini_handler_fnptr_t fnptr, void *param,
00095                     apr_pool_t *pool);
00096 
00097 SUL_DECLARE(sul_error_t *)
00098 mini_httpd_add_hook_re(mini_httpd_t *self, const char *url,
00099                        mini_handler_fnptr_t fnptr, void *param,
00100                        apr_pool_t *pool);
00101 
00110 SUL_DECLARE(sul_error_t *)
00111 mini_httpd_tick(mini_httpd_t *self, apr_pool_t *pool);
00112 
00113 SUL_DECLARE(sul_error_t *)
00114 mini_httpd_handle(mini_httpd_t *self, apr_socket_t *req_sock, 
00115                   apr_pool_t *pool);
00116 
00121 SUL_DECLARE(void)
00122 mini_httpd_max_size_set(mini_httpd_t *self, apr_size_t size);
00123 
00134 SUL_DECLARE(sul_error_t *)
00135 mini_req_create(mini_req_t **self, mini_httpd_t *httpd,
00136                 apr_socket_t *sock, apr_pool_t *pool);
00137 
00145 SUL_DECLARE(sul_error_t *)
00146 mini_httpd_set_access_fn(mini_httpd_t *self, mini_access_fnptr_t fn);
00147 
00154 SUL_DECLARE(sul_error_t *)
00155 mini_req_headers_read(mini_req_t *req);
00156 
00163 SUL_DECLARE(sul_error_t *)
00164 mini_req_process(mini_req_t *req);
00165 
00172 SUL_DECLARE(sul_error_t *)
00173 mini_req_headers_write(mini_req_t *req);
00174 
00182 SUL_DECLARE(sul_error_t *)
00183 mini_req_write(mini_req_t *req, const char *ptr);
00184 
00192 SUL_DECLARE(sul_error_t *)
00193 mini_req_printf(mini_req_t *req, const char *ptr, ...);
00194 
00199 SUL_DECLARE(void *)
00200 mini_req_hook_param_get(mini_req_t *req);
00201 
00206 SUL_DECLARE(apr_table_t *)
00207 mini_req_params(mini_req_t *req);
00208 
00213 SUL_DECLARE(char *)
00214 mini_req_query_get(mini_req_t *req);
00215 
00220 SUL_DECLARE(void *)
00221 mini_req_param_get(mini_req_t *req);
00222 
00227 SUL_DECLARE(void)
00228 mini_httpd_param_set(mini_httpd_t *self, void *value);
00229 
00234 SUL_DECLARE(char *)
00235 mini_req_local_ip(mini_req_t *req);
00236 
00241 SUL_DECLARE(char *)
00242 mini_req_remote_ip(mini_req_t *req);
00243 
00252 SUL_DECLARE(sul_boolean_t)
00253 mini_req_get_package(mini_req_t *req, const char **pkg, apr_size_t *sz);
00254 
00255 typedef struct sul_httpd_req_t
00256 {
00257   apr_pool_t *pool;
00258   apr_sockaddr_t *remote_sa;
00259   apr_socket_t *sock;
00260   char *ip;
00261   short port;
00262   char *url;
00263   apr_ssize_t p_len;
00264   char *p_pkg;
00265   sul_stringbuf_t *res;
00266   sul_stream_t *stream;
00267   sul_boolean_t overflow;
00268   apr_size_t max_size;
00269 } sul_httpd_req_t;
00270 
00281 SUL_DECLARE(sul_error_t *)
00282 sul_httpd_req_create(sul_httpd_req_t **req, const char *ip, short port, const char *url, apr_pool_t *pool);
00283 
00291 SUL_DECLARE(sul_error_t *)
00292 sul_httpd_req_send(sul_httpd_req_t *req, const char *str);
00293 
00303 SUL_DECLARE(sul_error_t *)
00304 sul_httpd_req_open(sul_httpd_req_t *req, sul_boolean_t cfail, apr_status_t *state, apr_ssize_t secs);
00305 
00312 SUL_DECLARE(sul_error_t *)
00313 sul_httpd_req_retrieve(sul_httpd_req_t *req);
00314 
00321 SUL_DECLARE(sul_error_t *)
00322 sul_httpd_req_close(sul_httpd_req_t *req);
00323 
00329 SUL_DECLARE(apr_ssize_t)
00330 sul_unescape_url(char *url);
00331 
00334 #endif

Generated on Wed Apr 28 09:38:34 2004 for State by doxygen 1.3.5