"Fossies" - the Fresh Open Source Software Archive

Member "mod_log_sql-1.101/mod_log_sql.h" (16 Jul 2004, 4509 Bytes) of package /linux/www/apache_httpd_modules/old/mod_log_sql-1.101.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /* $Id: mod_log_sql.h 142 2004-07-16 01:33:59Z urkle@drip.ws $ */
    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 
   29 typedef const char *logsql_item_func(request_rec *r, char *a);
   30 
   31 LOGSQL_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 */
   36 typedef 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*/
   44 typedef enum {
   45     LOGSQL_OPENDB_FAIL = 0,
   46     LOGSQL_OPENDB_SUCCESS,
   47     LOGSQL_OPENDB_ALREADY,
   48     LOGSQL_OPENDB_PRESERVE
   49 } logsql_opendb_ret;
   50 
   51 typedef 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 
   59 typedef enum {
   60     LOGSQL_TABLE_SUCCESS = 0,
   61     LOGSQL_TABLE_FAIL
   62 } logsql_table_ret;
   63 
   64 /* Table type to create/log to */
   65 typedef 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 
   81 typedef 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 
  101 LOGSQL_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 */