summaryrefslogtreecommitdiffstats
path: root/mod_log_sql.h
diff options
context:
space:
mode:
Diffstat (limited to 'mod_log_sql.h')
-rw-r--r--mod_log_sql.h103
1 files changed, 4 insertions, 99 deletions
diff --git a/mod_log_sql.h b/mod_log_sql.h
index 56aa2c3..f54ab54 100644
--- a/mod_log_sql.h
+++ b/mod_log_sql.h
@@ -1,5 +1,4 @@
1/* $Id$ */ 1/* $Header: /home/cvs/mod_log_sql/mod_log_sql.h,v 1.3 2004/01/22 05:26:56 urkle Exp $ */
2
3#ifndef MOD_LOG_SQL_H 2#ifndef MOD_LOG_SQL_H
4#define MOD_LOG_SQL_H 3#define MOD_LOG_SQL_H
5 4
@@ -24,104 +23,10 @@
24#define LOGSQL_DECLARE_DATA __declspec(dllimport) 23#define LOGSQL_DECLARE_DATA __declspec(dllimport)
25#endif 24#endif
26 25
27/* Registration function for extract functions */ 26typedef const char *log_sql_item_func(request_rec *r, char *a);
28
29typedef const char *logsql_item_func(request_rec *r, char *a);
30 27
28/* Registration Function for extract functions */
31LOGSQL_DECLARE(void) log_sql_register_item(server_rec *s, apr_pool_t *p, 29LOGSQL_DECLARE(void) log_sql_register_item(server_rec *s, apr_pool_t *p,
32 char key, logsql_item_func *func, const char *sql_field_name, 30 char key, log_sql_item_func *func, const char *sql_field_name,
33 int want_orig_default, int string_contents); 31 int want_orig_default, int string_contents);
34
35/* DB Connection structure holds connection handle */
36typedef struct {
37 int connected; /* Are we connected to the DB */
38 void *handle; /* DB specific connection pointer */
39 apr_table_t *parms; /* DB connection parameters */
40} logsql_dbconnection;
41
42/* open db handle return values*/
43typedef enum {
44 LOGSQL_OPENDB_FAIL = 0,
45 LOGSQL_OPENDB_SUCCESS,
46 LOGSQL_OPENDB_ALREADY,
47 LOGSQL_OPENDB_PRESERVE
48} logsql_opendb_ret;
49
50typedef enum {
51 LOGSQL_QUERY_SUCCESS = 0,
52 LOGSQL_QUERY_FAIL,
53 LOGSQL_QUERY_NOLINK,
54 LOGSQL_QUERY_NOTABLE,
55 LOGSQL_QUERY_PRESERVED
56} logsql_query_ret;
57
58typedef enum {
59 LOGSQL_TABLE_SUCCESS = 0,
60 LOGSQL_TABLE_FAIL
61} logsql_table_ret;
62
63/* Table type to create/log to */
64typedef enum {
65 LOGSQL_TABLE_ACCESS = 0,
66 LOGSQL_TABLE_NOTES,
67 LOGSQL_TABLE_HEADERSOUT,
68 LOGSQL_TABLE_HEADERSIN,
69 LOGSQL_TABLE_COOKIES
70} logsql_tabletype;
71
72/* All Tables */
73#define LOGSQL_TABLE_ALL LOGSQL_TABLE_ACCESS | LOGSQL_TABLE_NOTES | \
74 LOGSQL_TABLE_HEADERSIN | LOGSQL_TABLE_HEADERSOUT | LOGSQL_TABLE_COOKIES
75
76/* MySQL module calls */
77
78/* Registration function for database drivers */
79
80typedef struct {
81 /* NULL terminated list of drivers strings */
82 char **provided_drivers;
83 /* create a connection to the underlying database layer */
84 logsql_opendb_ret (*connect)(server_rec *s, logsql_dbconnection *db);
85 /* disconnect from the underlying database layer */
86 void (*disconnect)(logsql_dbconnection *db);
87 /* escape the SQL statement according to database rules */
88 const char *(*escape)(const char *from_str, apr_pool_t *p,
89 logsql_dbconnection *db);
90 /* insert a SQL query statement */
91 logsql_query_ret (*insert)(request_rec *r,logsql_dbconnection *db,
92 const char *query);
93 /* create a SQL table named table_name of table_type */
94 logsql_table_ret (*create_table)(request_rec *r, logsql_dbconnection *db,
95 logsql_tabletype table_type, const char *table_name);
96} logsql_dbdriver;
97
98LOGSQL_DECLARE(void) log_sql_register_driver(apr_pool_t *p,
99 logsql_dbdriver *driver);
100
101/* Module initialization Macros */
102#if defined(WITH_APACHE20)
103# define LOGSQL_REGISTER(driver) \
104 static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s); \
105 static void register_hooks(apr_pool_t *p) { \
106 ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_REALLY_FIRST); \
107 } \
108 \
109 module AP_MODULE_DECLARE_DATA log_sql_##driver##_module = { \
110 STANDARD20_MODULE_STUFF, \
111 NULL, NULL, NULL, NULL, NULL, register_hooks }; \
112 static int post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
113#elif defined(WITH_APACHE13)
114# define LOGSQL_REGISTER(driver) \
115 static void module_init(server_rec *s, apr_pool_t *p); \
116 module MODULE_VAR_EXPORT log_sql_##driver##_module = { \
117 STANDARD_MODULE_STUFF, module_init }; \
118 static void module_init(server_rec *s, apr_pool_t *p)
119#endif
120
121#if defined(WITH_APACHE20)
122#define LOGSQL_REGISTER_RETURN return OK;
123#elif defined(WITH_APACHE13)
124#define LOGSQL_REGISTER_RETURN
125#endif
126
127#endif /* MOD_LOG_SQL_H */ 32#endif /* MOD_LOG_SQL_H */