Mailing List Archive

cvs commit: apache/src http_config.c http_config.h http_request.c mod_browser.c
ben 97/01/04 07:10:19

Modified: src http_config.c http_config.h http_request.c
mod_browser.c
Log:
Experimental Header Parse API.

Revision Changes Path
1.40 +4 -0 apache/src/http_config.c

Index: http_config.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_config.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -C3 -r1.39 -r1.40
*** http_config.c 1997/01/01 18:10:16 1.39
--- http_config.c 1997/01/04 15:10:15 1.40
***************
*** 292,297 ****
--- 292,301 ----
return run_method (r, XtOffsetOf (module, logger), 1);
}

+ int header_parse (request_rec *r) {
+ return run_method (r, XtOffsetOf (module, header_parser), 1);
+ }
+
/* Auth stuff --- anything that defines one of these will presumably
* want to define something for the other. Note that check_auth is
* separate from check_access to make catching some config errors easier.



1.27 +3 -1 apache/src/http_config.h

Index: http_config.h
===================================================================
RCS file: /export/home/cvs/apache/src/http_config.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -C3 -r1.26 -r1.27
*** http_config.h 1997/01/01 18:10:17 1.26
--- http_config.h 1997/01/04 15:10:16 1.27
***************
*** 216,221 ****
--- 216,222 ----
int (*type_checker)(request_rec *);
int (*fixer_upper)(request_rec *);
int (*logger)(request_rec *);
+ int (*header_parser)(request_rec *);
} module;

/* Initializer for the first few module slots, which are only
***************
*** 225,231 ****
* handle it back-compatibly, or at least signal an error).
*/

! #define MODULE_MAGIC_NUMBER 19961211
#define STANDARD_MODULE_STUFF MODULE_MAGIC_NUMBER, -1, __FILE__, NULL

/* Generic accessors for other modules to get at their own module-specific
--- 226,232 ----
* handle it back-compatibly, or at least signal an error).
*/

! #define MODULE_MAGIC_NUMBER 19970103
#define STANDARD_MODULE_STUFF MODULE_MAGIC_NUMBER, -1, __FILE__, NULL

/* Generic accessors for other modules to get at their own module-specific
***************
*** 291,295 ****
--- 292,297 ----
int run_fixups (request_rec *); /* poke around for other metainfo, etc.... */
int invoke_handler (request_rec *);
int log_transaction (request_rec *r);
+ int header_parse (request_rec *);

#endif



1.35 +5 -0 apache/src/http_request.c

Index: http_request.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_request.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -C3 -r1.34 -r1.35
*** http_request.c 1997/01/01 18:10:22 1.34
--- http_request.c 1997/01/04 15:10:16 1.35
***************
*** 867,872 ****
--- 867,877 ----
die (access_status, r);
return;
}
+
+ if ((access_status = header_parse (r))) {
+ die (access_status, r);
+ return;
+ }

switch (satisfies(r)) {
case SATISFY_ALL:



1.7 +3 -2 apache/src/mod_browser.c

Index: mod_browser.c
===================================================================
RCS file: /export/home/cvs/apache/src/mod_browser.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C3 -r1.6 -r1.7
*** mod_browser.c 1997/01/01 18:10:29 1.6
--- mod_browser.c 1997/01/04 15:10:17 1.7
***************
*** 138,144 ****
{ NULL },
};

! int fixup_browser_module(request_rec *r)
{
server_rec *s = r->server;
browser_server_config_rec *sconf = get_module_config (s->module_config,
--- 138,144 ----
{ NULL },
};

! int parse_headers_browser_module(request_rec *r)
{
server_rec *s = r->server;
browser_server_config_rec *sconf = get_module_config (s->module_config,
***************
*** 182,187 ****
NULL, /* check auth */
NULL, /* check access */
NULL, /* type_checker */
! fixup_browser_module, /* fixups */
NULL, /* logger */
};
--- 182,188 ----
NULL, /* check auth */
NULL, /* check access */
NULL, /* type_checker */
! NULL, /* fixups */
NULL, /* logger */
+ parse_headers_browser_module,/* header parser */
};