4 #ifndef RUDIMENTS_APACHEMODULE_H
5 #define RUDIMENTS_APACHEMODULE_H
7 #ifndef HTTP_MODULE_NAME
8 #error HTTP_MODULE_NAME not defined
11 #define XHANDLER_DO_FUNCTION(NM) HANDLER_DO_FUNCTION(NM)
12 #define HANDLER_DO_FUNCTION(NM) do_##NM##_handler
14 #define XHANDLER_FUNCTION(NM) HANDLER_FUNCTION(NM)
15 #define HANDLER_FUNCTION(NM) NM##_handler
17 #define XMODULE_STRUCT(NM) MODULE_STRUCT(NM)
18 #define MODULE_STRUCT(NM) NM##_module
20 #define XXFILE_NAME(NM) XFILE_NAME(NM)
21 #define XFILE_NAME(NM) FILE_NAME(mod_##NM)
22 #define FILE_NAME(NM) #NM".c"
24 #define XMOD_NAME(NM) MOD_NAME(NM)
25 #define MOD_NAME(NM) #NM
27 #include <rudiments/apachehttpserverapi.h>
28 #include <rudiments/private/apacheincludes.h>
31 #include <rudiments/charstring.h>
38 static int XHANDLER_FUNCTION(HTTP_MODULE_NAME)(request_rec *r);
42 static int XHANDLER_DO_FUNCTION(HTTP_MODULE_NAME)(request_rec *r) {
45 XMOD_NAME(HTTP_MODULE_NAME))) {
49 return XHANDLER_FUNCTION(HTTP_MODULE_NAME)(r);
52 static void register_hooks(apr_pool_t *pool) {
53 ap_hook_handler(XHANDLER_DO_FUNCTION(HTTP_MODULE_NAME),
54 NULL,NULL,APR_HOOK_FIRST);
57 module AP_MODULE_DECLARE_DATA XMODULE_STRUCT(HTTP_MODULE_NAME) = {
58 MODULE_MAGIC_NUMBER_MAJOR,
59 MODULE_MAGIC_NUMBER_MINOR,
61 XXFILE_NAME(HTTP_MODULE_NAME),
76 static const handler_rec handler_struct[] = {
77 { XMOD_NAME(HTTP_MODULE_NAME),
78 XHANDLER_FUNCTION(HTTP_MODULE_NAME) },
82 #ifdef MODULE_MAGIC_COOKIE
83 #define GW_MODULE_MAGIC_COOKIE MODULE_MAGIC_COOKIE,
85 #define GW_MODULE_MAGIC_COOKIE
88 module MODULE_VAR_EXPORT XMODULE_STRUCT(HTTP_MODULE_NAME) = {
89 MODULE_MAGIC_NUMBER_MAJOR,
90 MODULE_MAGIC_NUMBER_MINOR,
92 XXFILE_NAME(HTTP_MODULE_NAME),
95 GW_MODULE_MAGIC_COOKIE
124 static int XHANDLER_FUNCTION(HTTP_MODULE_NAME)(request_rec *r) {
126 return (httpModuleMain(&sapi))?OK:DECLINED;
Definition: apachehttpserverapi.h:9
static int32_t compare(const char *str1, const char *str2)
Definition: httpserverapi.h:9