summaryrefslogtreecommitdiffstatsabout
path: root/mod_log_sql.h
diff options
context:
space:
mode:
authorEdward Rudd <urkle@outoforder.cc>2007-10-20 13:18:20 (GMT)
committer Edward Rudd <urkle@outoforder.cc>2007-10-20 13:18:20 (GMT)
commit1415cc4f58be08f90e646096cbf7e229a92faea5 (patch)
treea4c705e47adbc941e1de5287ef3b67e50e2a2bca /mod_log_sql.h
parentfdee18399169716032a052effedf886480590efc (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.h48
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
29typedef const char *logsql_item_func(request_rec *r, char *a); 31typedef const char *logsql_item_func(request_rec *r, char *a);
30 32
31LOGSQL_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, 34typedef 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
39LOGSQL_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
43LOGSQL_DECLARE(void) log_sql_register_alias(server_rec *s, apr_pool_t *p,
44 char key, const char *alias);
45
46typedef 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
54LOGSQL_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
60LOGSQL_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 */
36typedef struct { 63typedef 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 */