diff options
author | Edward Rudd <urkle@outoforder.cc> | 2007-10-20 13:18:20 (GMT) |
---|---|---|
committer | Edward Rudd <urkle@outoforder.cc> | 2007-10-20 13:18:20 (GMT) |
commit | 1415cc4f58be08f90e646096cbf7e229a92faea5 (patch) | |
tree | a4c705e47adbc941e1de5287ef3b67e50e2a2bca /mod_log_sql.h | |
parent | fdee18399169716032a052effedf886480590efc (diff) |
updated with new code to allow better dynamic configuration of logged fields
Diffstat (limited to 'mod_log_sql.h')
-rw-r--r-- | mod_log_sql.h | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/mod_log_sql.h b/mod_log_sql.h index 6bcd6cb..2d20374 100644 --- a/mod_log_sql.h +++ b/mod_log_sql.h | |||
@@ -24,13 +24,40 @@ | |||
24 | #define LOGSQL_DECLARE_DATA __declspec(dllimport) | 24 | #define LOGSQL_DECLARE_DATA __declspec(dllimport) |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | #define LOG_SQL_PLUGIN_VERSION 20070704 | ||
28 | |||
27 | /* Registration function for extract functions */ | 29 | /* Registration function for extract functions */ |
28 | 30 | ||
29 | typedef const char *logsql_item_func(request_rec *r, char *a); | 31 | typedef const char *logsql_item_func(request_rec *r, char *a); |
30 | 32 | ||
31 | LOGSQL_DECLARE(void) log_sql_register_item(server_rec *s, apr_pool_t *p, | 33 | |
32 | char key, logsql_item_func *func, const char *sql_field_name, | 34 | typedef enum { |
33 | int want_orig_default, int string_contents); | 35 | LOGSQL_FUNCTION_REQ_FINAL = 0, |
36 | LOGSQL_FUNCTION_REQ_ORIG | ||
37 | } logsql_function_req; | ||
38 | |||
39 | LOGSQL_DECLARE(void) log_sql_register_function(apr_pool_t *p, | ||
40 | const char *alias, logsql_item_func *func, | ||
41 | logsql_function_req want_orig_default); | ||
42 | |||
43 | LOGSQL_DECLARE(void) log_sql_register_alias(server_rec *s, apr_pool_t *p, | ||
44 | char key, const char *alias); | ||
45 | |||
46 | typedef enum { | ||
47 | LOGSQL_DATATYPE_INT = 0, | ||
48 | LOGSQL_DATATYPE_SMALLINT, | ||
49 | LOGSQL_DATATYPE_VARCHAR, | ||
50 | LOGSQL_DATATYPE_CHAR, | ||
51 | LOGSQL_DATATYPE_BIGINT | ||
52 | } logsql_field_datatype; | ||
53 | |||
54 | LOGSQL_DECLARE(void) log_sql_register_field(apr_pool_t *p, | ||
55 | const char *alias, | ||
56 | const char *funcalias, const char *param, | ||
57 | const char *sql_field_name, | ||
58 | logsql_field_datatype datatype, apr_size_t size); | ||
59 | |||
60 | LOGSQL_DECLARE(void) log_sql_register_finish(server_rec *s); | ||
34 | 61 | ||
35 | /* DB Connection structure holds connection handle */ | 62 | /* DB Connection structure holds connection handle */ |
36 | typedef struct { | 63 | typedef struct { |
@@ -88,7 +115,7 @@ typedef struct { | |||
88 | /* disconnect from the underlying database layer */ | 115 | /* disconnect from the underlying database layer */ |
89 | void (*disconnect)(logsql_dbconnection *db); | 116 | void (*disconnect)(logsql_dbconnection *db); |
90 | /* escape the SQL statement according to database rules */ | 117 | /* escape the SQL statement according to database rules */ |
91 | const char *(*escape)(const char *from_str, apr_pool_t *p, | 118 | const char *(*escape)(const char *from_str, apr_pool_t *p, |
92 | logsql_dbconnection *db); | 119 | logsql_dbconnection *db); |
93 | /* insert a SQL query statement */ | 120 | /* insert a SQL query statement */ |
94 | logsql_query_ret (*insert)(request_rec *r,logsql_dbconnection *db, | 121 | logsql_query_ret (*insert)(request_rec *r,logsql_dbconnection *db, |
@@ -102,35 +129,38 @@ LOGSQL_DECLARE(void) log_sql_register_driver(apr_pool_t *p, | |||
102 | logsql_dbdriver *driver); | 129 | logsql_dbdriver *driver); |
103 | 130 | ||
104 | /* Module initialization Macros */ | 131 | /* Module initialization Macros */ |
132 | #define LOGSQL_MODULE(driver) log_sql_##driver##_module | ||
105 | #if defined(WITH_APACHE20) | 133 | #if defined(WITH_APACHE20) |
134 | # define LOGSQL_MODULE_FORWARD(driver) module AP_MODULE_DECLARE_DATA LOGSQL_MODULE(driver) | ||
106 | # define LOGSQL_REGISTER(driver) \ | 135 | # define LOGSQL_REGISTER(driver) \ |
107 | static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s); \ | 136 | static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s); \ |
108 | static void register_hooks(apr_pool_t *p) { \ | 137 | static void register_hooks(apr_pool_t *p) { \ |
109 | ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_REALLY_FIRST); \ | 138 | ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_REALLY_FIRST); \ |
110 | } \ | 139 | } \ |
111 | \ | 140 | \ |
112 | module AP_MODULE_DECLARE_DATA log_sql_##driver##_module = { \ | 141 | LOGSQL_MODULE_FORWARD(driver) = { \ |
113 | STANDARD20_MODULE_STUFF, \ | 142 | STANDARD20_MODULE_STUFF, \ |
114 | NULL, NULL, NULL, NULL, NULL, register_hooks }; \ | 143 | NULL, NULL, NULL, NULL, NULL, register_hooks }; \ |
115 | static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) | 144 | static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) |
116 | #elif defined(WITH_APACHE13) | 145 | #elif defined(WITH_APACHE13) |
146 | # define LOGSQL_MODULE_FORWARD(driver) module MODULE_VAR_EXPORT LOGSQL_MODULE(driver) | ||
117 | # define LOGSQL_REGISTER(driver) \ | 147 | # define LOGSQL_REGISTER(driver) \ |
118 | static void module_init(server_rec *s, apr_pool_t *p); \ | 148 | static void module_init(server_rec *s, apr_pool_t *p); \ |
119 | module MODULE_VAR_EXPORT log_sql_##driver##_module = { \ | 149 | LOGSQL_MODULE_FORWARD(driver) = { \ |
120 | STANDARD_MODULE_STUFF, module_init }; \ | 150 | STANDARD_MODULE_STUFF, module_init }; \ |
121 | static void module_init(server_rec *s, apr_pool_t *p) | 151 | static void module_init(server_rec *s, apr_pool_t *p) |
122 | #endif | 152 | #endif |
123 | 153 | ||
124 | #if defined(WITH_APACHE20) | 154 | #if defined(WITH_APACHE20) |
125 | # define LOGSQL_SHUTDOWN \ | 155 | # define LOGSQL_SHUTDOWN \ |
126 | static | 156 | static |
127 | #endif | 157 | #endif |
128 | 158 | ||
129 | 159 | ||
130 | #if defined(WITH_APACHE20) | 160 | #if defined(WITH_APACHE20) |
131 | #define LOGSQL_REGISTER_RETURN return OK; | 161 | #define LOGSQL_REGISTER_RETURN log_sql_register_finish(s); return OK; |
132 | #elif defined(WITH_APACHE13) | 162 | #elif defined(WITH_APACHE13) |
133 | #define LOGSQL_REGISTER_RETURN | 163 | #define LOGSQL_REGISTER_RETURN log_sql_register_finish(s); |
134 | #endif | 164 | #endif |
135 | 165 | ||
136 | #endif /* MOD_LOG_SQL_H */ | 166 | #endif /* MOD_LOG_SQL_H */ |