Annotation of parser3/src/targets/apache/pa_httpd.h, revision 1.1
1.1 ! moko 1: /** @file
! 2: Parser: http wrapper.
! 3:
! 4: Copyright (c) 2003 ArtLebedev Group (http://www.artlebedev.com)
! 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
! 6: */
! 7:
! 8: #ifndef PA_HTTPD_H
! 9: #define PA_HTTPD_H
! 10:
! 11: static const char * const IDENT_HTTPD_H="$Date: 2004-04-01 11:43:54 $";
! 12:
! 13: #ifdef __cplusplus
! 14: extern "C" {
! 15: #endif
! 16:
! 17: // import from c to c++
! 18:
! 19: typedef void pa_pool;
! 20: typedef void pa_server_rec;
! 21: typedef void pa_table;
! 22:
! 23: typedef struct pa_request_rec_tag {
! 24: void* real_request_rec;
! 25:
! 26: pa_pool* pool;
! 27: int header_only; /* HEAD request, as opposed to GET */
! 28: int* status;
! 29: const char *method; /* GET, HEAD, POST, etc. */
! 30:
! 31: pa_table *headers_out;
! 32: void* subprocess_env;
! 33: const char ** content_type;
! 34:
! 35: char *uri; /* the path portion of the URI */
! 36: char *filename; /* filename if found, otherwise NULL */
! 37: char *path_info;
! 38: char *args; /* QUERY_ARGS, if any */
! 39: struct stat* finfo; /* ST_MODE set to zero if no such file */
! 40: } pa_request_rec;
! 41:
! 42: /// apache parser module configuration [httpd.conf + .htaccess-es]
! 43: typedef struct Parser_module_config_tag {
! 44: const char* parser_config_filespec; ///< filespec of site's config file
! 45: int parser_status_allowed;
! 46: } Parser_module_config;
! 47:
! 48: const char* pa_version();
! 49: void pa_setup_module_cells();
! 50: void pa_destroy_module_cells();
! 51: int pa_parser_handler(pa_request_rec*, Parser_module_config*);
! 52:
! 53: // export from c to c++
! 54:
! 55:
! 56: // http_log.h
! 57:
! 58: #define PA_APLOG_EMERG 0 /* system is unusable */
! 59: #define PA_APLOG_ALERT 1 /* action must be taken immediately */
! 60: #define PA_APLOG_CRIT 2 /* critical conditions */
! 61: #define PA_APLOG_ERR 3 /* error conditions */
! 62: #define PA_APLOG_WARNING 4 /* warning conditions */
! 63: #define PA_APLOG_NOTICE 5 /* normal but significant condition */
! 64: #define PA_APLOG_INFO 6 /* informational */
! 65: #define PA_APLOG_DEBUG 7 /* debug-level messages */
! 66:
! 67: #define PA_APLOG_LEVELMASK 7 /* mask off the level value */
! 68:
! 69: #define PA_APLOG_NOERRNO (PA_APLOG_LEVELMASK + 1)
! 70:
! 71: #define PA_APLOG_MARK __FILE__,__LINE__
! 72:
! 73: void pa_ap_log_rerror(const char *file, int line, int level,
! 74: const pa_request_rec *s, const char *fmt, ...);
! 75:
! 76:
! 77: void pa_ap_log_error(const char *file, int line, int level,
! 78: const pa_server_rec *s, const char *fmt, ...);
! 79:
! 80: // ap_alloc.h
! 81:
! 82: const char * pa_ap_table_get(const pa_table *, const char *);
! 83: void pa_ap_table_addn(pa_table *, const char *name, const char *val);
! 84:
! 85: int pa_ap_table_size(const pa_table *);
! 86:
! 87: void pa_ap_table_do(int (*comp) (void *, const char *, const char *),
! 88: void *rec, const pa_table *t,...);
! 89:
! 90: char * pa_ap_pstrdup(pa_pool *, const char *s);
! 91:
! 92: // http_protocol.h
! 93:
! 94: /* Possible values for request_rec.read_body (set by handling module):
! 95: * REQUEST_NO_BODY Send 413 error if message has any body
! 96: * REQUEST_CHUNKED_ERROR Send 411 error if body without Content-Length
! 97: * REQUEST_CHUNKED_DECHUNK If chunked, remove the chunks for me.
! 98: * REQUEST_CHUNKED_PASS Pass the chunks to me without removal.
! 99: */
! 100: #define PA_REQUEST_NO_BODY 0
! 101: #define PA_REQUEST_CHUNKED_ERROR 1
! 102: #define PA_REQUEST_CHUNKED_DECHUNK 2
! 103: #define PA_REQUEST_CHUNKED_PASS 3
! 104:
! 105: int pa_ap_setup_client_block(pa_request_rec *r, int read_policy);
! 106: int pa_ap_should_client_block(pa_request_rec *r);
! 107: long pa_ap_get_client_block(pa_request_rec *r, char *buffer, int bufsiz);
! 108: void pa_ap_send_http_header(pa_request_rec *l);
! 109: int pa_ap_rwrite(const void *buf, int nbyte, pa_request_rec *r);
! 110:
! 111:
! 112: // http_main.h
! 113:
! 114: void pa_ap_hard_timeout(char *, pa_request_rec *);
! 115: void pa_ap_reset_timeout(pa_request_rec *);
! 116: void pa_ap_kill_timeout(pa_request_rec *);
! 117:
! 118:
! 119: // util_script.h
! 120:
! 121: void pa_ap_add_cgi_vars(pa_request_rec *r);
! 122: void pa_ap_add_common_vars(pa_request_rec *r);
! 123:
! 124: // httpd.h
! 125:
! 126: #define PA_HTTP_NOT_FOUND 404
! 127: #define PA_OK 0 /* Module has handled this stage. */
! 128:
! 129: // signal.h
! 130:
! 131: #define PA_SIGPIPE 1 /* must translate to real one */
! 132: #define PA_SIG_IGN (void (*)(int))1 /* must translate to real one */
! 133:
! 134: void (*pa_signal (int sig, void (*disp)(int)))(int);
! 135:
! 136: // ap_md5.h
! 137:
! 138: #define PA_MD5_DIGESTSIZE 16
! 139: typedef void PA_MD5_CTX;
! 140:
! 141: void pa_MD5Init(PA_MD5_CTX *context);
! 142: void pa_MD5Update(PA_MD5_CTX *context, const unsigned char *input,
! 143: unsigned int inputLen);
! 144: void pa_MD5Final(unsigned char digest[PA_MD5_DIGESTSIZE],
! 145: PA_MD5_CTX *context);
! 146: void pa_MD5Encode(const unsigned char *password,
! 147: const unsigned char *salt,
! 148: char *result, size_t nbytes);
! 149: void pa_to64(char *s, unsigned long v, int n);
! 150:
! 151:
! 152: #ifdef __cplusplus
! 153: }
! 154: #endif
! 155:
! 156: #endif
E-mail: