summaryrefslogtreecommitdiffstatsabout
path: root/mod_log_sql.h
diff options
context:
space:
mode:
Diffstat (limited to 'mod_log_sql.h')
-rw-r--r--mod_log_sql.h136
1 files changed, 0 insertions, 136 deletions
diff --git a/mod_log_sql.h b/mod_log_sql.h
deleted file mode 100644
index 6bcd6cb..0000000
--- a/mod_log_sql.h
+++ /dev/null
@@ -1,136 +0,0 @@
1/* $Id$ */
2
3#ifndef MOD_LOG_SQL_H
4#define MOD_LOG_SQL_H
5
6/* Create a set of LOGSQL_DECLARE(type), LOGSQL_DECLARE_NONSTD(type) and
7 * LOGSQL_DECLARE_DATA with appropriate export and import tags for the platform
8 */
9#if !defined(WIN32)
10#define LOGSQL_DECLARE(type) type
11#define LOGSQL_DECLARE_NONSTD(type) type
12#define LOGSQL_DECLARE_DATA
13#elif defined(LOGSQL_DECLARE_STATIC)
14#define LOGSQL_DECLARE(type) type __stdcall
15#define LOGSQL_DECLARE_NONSTD(type) type
16#define LOGSQL_DECLARE_DATA
17#elif defined(LOGSQL_DECLARE_EXPORT)
18#define LOGSQL_DECLARE(type) __declspec(dllexport) type __stdcall
19#define LOGSQL_DECLARE_NONSTD(type) __declspec(dllexport) type
20#define LOGSQL_DECLARE_DATA __declspec(dllexport)
21#else
22#define LOGSQL_DECLARE(type) __declspec(dllimport) type __stdcall
23#define LOGSQL_DECLARE_NONSTD(type) __declspec(dllimport) type
24#define LOGSQL_DECLARE_DATA __declspec(dllimport)
25#endif
26
27/* Registration function for extract functions */
28
29typedef const char *logsql_item_func(request_rec *r, char *a);
30
31LOGSQL_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,
33 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_pool_t *p; /* Pool to allocate handle off of */
40 apr_table_t *parms; /* DB connection parameters */
41} logsql_dbconnection;
42
43/* open db handle return values*/
44typedef enum {
45 LOGSQL_OPENDB_FAIL = 0,
46 LOGSQL_OPENDB_SUCCESS,
47 LOGSQL_OPENDB_ALREADY,
48 LOGSQL_OPENDB_PRESERVE
49} logsql_opendb_ret;
50
51typedef enum {
52 LOGSQL_QUERY_SUCCESS = 0,
53 LOGSQL_QUERY_FAIL,
54 LOGSQL_QUERY_NOLINK,
55 LOGSQL_QUERY_NOTABLE,
56 LOGSQL_QUERY_PRESERVED
57} logsql_query_ret;
58
59typedef enum {
60 LOGSQL_TABLE_SUCCESS = 0,
61 LOGSQL_TABLE_FAIL
62} logsql_table_ret;
63
64/* Table type to create/log to */
65typedef enum {
66 LOGSQL_TABLE_ACCESS = 0,
67 LOGSQL_TABLE_NOTES,
68 LOGSQL_TABLE_HEADERSOUT,
69 LOGSQL_TABLE_HEADERSIN,
70 LOGSQL_TABLE_COOKIES
71} logsql_tabletype;
72
73/* All Tables */
74#define LOGSQL_TABLE_ALL LOGSQL_TABLE_ACCESS | LOGSQL_TABLE_NOTES | \
75 LOGSQL_TABLE_HEADERSIN | LOGSQL_TABLE_HEADERSOUT | LOGSQL_TABLE_COOKIES
76
77/* MySQL module calls */
78
79/* Registration function for database drivers */
80
81typedef struct {
82 /* name of the provider */
83 const char *providername;
84 /* NULL terminated list of drivers strings */
85 const char **provided_drivers;
86 /* create a connection to the underlying database layer */
87 logsql_opendb_ret (*connect)(server_rec *s, logsql_dbconnection *db);
88 /* disconnect from the underlying database layer */
89 void (*disconnect)(logsql_dbconnection *db);
90 /* escape the SQL statement according to database rules */
91 const char *(*escape)(const char *from_str, apr_pool_t *p,
92 logsql_dbconnection *db);
93 /* insert a SQL query statement */
94 logsql_query_ret (*insert)(request_rec *r,logsql_dbconnection *db,
95 const char *query);
96 /* create a SQL table named table_name of table_type */
97 logsql_table_ret (*create_table)(request_rec *r, logsql_dbconnection *db,
98 logsql_tabletype table_type, const char *table_name);
99} logsql_dbdriver;
100
101LOGSQL_DECLARE(void) log_sql_register_driver(apr_pool_t *p,
102 logsql_dbdriver *driver);
103
104/* Module initialization Macros */
105#if defined(WITH_APACHE20)
106# define LOGSQL_REGISTER(driver) \
107 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) { \
109 ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_REALLY_FIRST); \
110 } \
111 \
112 module AP_MODULE_DECLARE_DATA log_sql_##driver##_module = { \
113 STANDARD20_MODULE_STUFF, \
114 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)
116#elif defined(WITH_APACHE13)
117# define LOGSQL_REGISTER(driver) \
118 static void module_init(server_rec *s, apr_pool_t *p); \
119 module MODULE_VAR_EXPORT log_sql_##driver##_module = { \
120 STANDARD_MODULE_STUFF, module_init }; \
121 static void module_init(server_rec *s, apr_pool_t *p)
122#endif
123
124#if defined(WITH_APACHE20)
125# define LOGSQL_SHUTDOWN \
126 static
127#endif
128
129
130#if defined(WITH_APACHE20)
131#define LOGSQL_REGISTER_RETURN return OK;
132#elif defined(WITH_APACHE13)
133#define LOGSQL_REGISTER_RETURN
134#endif
135
136#endif /* MOD_LOG_SQL_H */