diff options
-rw-r--r-- | CHANGELOG | 7 | ||||
-rw-r--r-- | Makefile.in | 6 | ||||
-rw-r--r-- | TODO.in | 4 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | functions.h | 7 | ||||
-rw-r--r-- | mod_log_sql.c | 59 |
6 files changed, 53 insertions, 34 deletions
@@ -1,3 +1,10 @@ | |||
1 | 1.100: 2004-09-?f | ||
2 | * fixes for NULL fields (empty request_args) | ||
3 | * fixed a mysql reconnect bug | ||
4 | * wrong hostname was logged when using mass virtual hosting | ||
5 | Use, the new 'V' logformat | ||
6 | * formatted massvirutalhosting tables to swap - with _. | ||
7 | |||
1 | 1.99: 2004-07-28 | 8 | 1.99: 2004-07-28 |
2 | * Added DBI support (not completed yet) | 9 | * Added DBI support (not completed yet) |
3 | * fixed segfault in the mysql driver escape_string function | 10 | * fixed segfault in the mysql driver escape_string function |
diff --git a/Makefile.in b/Makefile.in index a08ec1b..0a7b9be 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -73,13 +73,13 @@ PROVIDERS_SUBDIRS = @subdirs@ | |||
73 | srcdir = @abs_srcdir@ | 73 | srcdir = @abs_srcdir@ |
74 | builddir = @abs_builddir@ | 74 | builddir = @abs_builddir@ |
75 | 75 | ||
76 | OBJ = $(SOURCES:.c=.o) $(sslSOURCES:.c=.o) $(mysqlSOURCES:.c=.o) \ | 76 | OBJ = $(coreSOURCES:.c=.o) $(sslSOURCES:.c=.o) $(mysqlSOURCES:.c=.o) \ |
77 | $(dbiSOURCES:.c=.o) $(pgsqlSOURCES:.c=.o) | 77 | $(dbiSOURCES:.c=.o) $(pgsqlSOURCES:.c=.o) |
78 | 78 | ||
79 | LO = $(SOURCES:.c=.lo) $(sslSOURCES:.c=.lo) $(mysqlSOURCES:.c=.lo) \ | 79 | LO = $(coreSOURCES:.c=.lo) $(sslSOURCES:.c=.lo) $(mysqlSOURCES:.c=.lo) \ |
80 | $(dbiSOURCES:.c=.lo) $(pgsqlSOURCES:.c=.lo) | 80 | $(dbiSOURCES:.c=.lo) $(pgsqlSOURCES:.c=.lo) |
81 | 81 | ||
82 | SLO = $(SOURCES:.c=.slo) $(sslSOURCES:.c=.slo) $(mysqlSOURCES:.c=.slo) \ | 82 | SLO = $(coreSOURCES:.c=.slo) $(sslSOURCES:.c=.slo) $(mysqlSOURCES:.c=.slo) \ |
83 | $(dbiSOURCES:.c=.slo) $(pgsqlSOURCES:.c=.slo) | 83 | $(dbiSOURCES:.c=.slo) $(pgsqlSOURCES:.c=.slo) |
84 | 84 | ||
85 | STD_DIST = install-sh \ | 85 | STD_DIST = install-sh \ |
@@ -1,4 +1,6 @@ | |||
1 | TODO: | 1 | TODO: |
2 | * verify a db driver has been loaded. | ||
3 | * validate table names before trying to log them. | ||
2 | * write alternate DB driver (PostgreSQL, libDBI, mod_*_pool) | 4 | * write alternate DB driver (PostgreSQL, libDBI, mod_*_pool) |
3 | * look at forcing table name to ServerName instead of on of the names in | 5 | * look at forcing table name to ServerName instead of on of the names in |
4 | ServerAlias? | 6 | ServerAlias? |
@@ -9,7 +11,7 @@ TODO: | |||
9 | * investigate thread safety issues | 11 | * investigate thread safety issues |
10 | Use libmysqlclient_r for threaded MPM (or always?) | 12 | Use libmysqlclient_r for threaded MPM (or always?) |
11 | Add thread locks if using standard mysqlclient | 13 | Add thread locks if using standard mysqlclient |
12 | Check locking issues with the preserve file? | 14 | Check locking issues with the preserve file |
13 | * rewrite main core logging function to optimize for speed. | 15 | * rewrite main core logging function to optimize for speed. |
14 | * Clean up table creation code. | 16 | * Clean up table creation code. |
15 | support DB independent way of defining the tables | 17 | support DB independent way of defining the tables |
diff --git a/configure.ac b/configure.ac index 322cde2..7dd9489 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -26,6 +26,7 @@ CHECK_MYSQL( | |||
26 | AC_MSG_WARN([*** Mysql client libraries not found!]) | 26 | AC_MSG_WARN([*** Mysql client libraries not found!]) |
27 | WANT_MYSQL_MOD=0 | 27 | WANT_MYSQL_MOD=0 |
28 | ) | 28 | ) |
29 | |||
29 | AC_SUBST(WANT_MYSQL_MOD) | 30 | AC_SUBST(WANT_MYSQL_MOD) |
30 | 31 | ||
31 | CHECK_LIBDBI(WANT_DBI_MOD=1, | 32 | CHECK_LIBDBI(WANT_DBI_MOD=1, |
@@ -41,9 +42,10 @@ AC_SUBST(WANT_PGSQL_MOD) | |||
41 | 42 | ||
42 | CHECK_MOD_SSL( | 43 | CHECK_MOD_SSL( |
43 | WANT_SSL_MOD=1, | 44 | WANT_SSL_MOD=1, |
44 | AC_MSG_ERROR([** mod_ssl.h not found or missing SSL headers!]) | 45 | AC_MSG_WARN([** mod_ssl.h not found or missing SSL headers!]) |
45 | WANT_SSL_MOD=0 | 46 | WANT_SSL_MOD=0 |
46 | ) | 47 | ) |
48 | |||
47 | AC_SUBST(WANT_SSL_MOD) | 49 | AC_SUBST(WANT_SSL_MOD) |
48 | 50 | ||
49 | case "$target" in | 51 | case "$target" in |
diff --git a/functions.h b/functions.h index dcbc939..b35634a 100644 --- a/functions.h +++ b/functions.h | |||
@@ -99,7 +99,12 @@ static const char *extract_status(request_rec *r, char *a) | |||
99 | 99 | ||
100 | static const char *extract_virtual_host(request_rec *r, char *a) | 100 | static const char *extract_virtual_host(request_rec *r, char *a) |
101 | { | 101 | { |
102 | return apr_pstrdup(r->pool, r->server->server_hostname); | 102 | return r->server->server_hostname; |
103 | } | ||
104 | |||
105 | static const char *extract_server_name(request_rec *r, char *a) | ||
106 | { | ||
107 | return ap_get_server_name(r); | ||
103 | } | 108 | } |
104 | 109 | ||
105 | static const char *extract_machine_id(request_rec *r, char *a) | 110 | static const char *extract_machine_id(request_rec *r, char *a) |
diff --git a/mod_log_sql.c b/mod_log_sql.c index 7aaa595..13a7eb8 100644 --- a/mod_log_sql.c +++ b/mod_log_sql.c | |||
@@ -464,35 +464,36 @@ static int log_sql_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptem | |||
464 | static void log_sql_module_init(server_rec *s, apr_pool_t *p) | 464 | static void log_sql_module_init(server_rec *s, apr_pool_t *p) |
465 | #endif | 465 | #endif |
466 | { | 466 | { |
467 | /* TODO: Add local_address, remote_address, server_name, connection_status */ | 467 | /* TODO: Add local_address, remote_address, server_name, connection_status */ |
468 | /* Register handlers */ | 468 | /* Register handlers */ |
469 | log_sql_register_item(s,p,'A', extract_agent, "agent", 1, 1); | 469 | log_sql_register_item(s,p,'A', extract_agent, "agent", 1, 1); |
470 | log_sql_register_item(s,p,'a', extract_request_query, "request_args", 1, 1); | 470 | log_sql_register_item(s,p,'a', extract_request_query, "request_args", 1, 1); |
471 | log_sql_register_item(s,p,'b', extract_bytes_sent, "bytes_sent", 0, 0); | 471 | log_sql_register_item(s,p,'b', extract_bytes_sent, "bytes_sent", 0, 0); |
472 | log_sql_register_item(s,p,'c', extract_cookie, "cookie", 0, 1); | 472 | log_sql_register_item(s,p,'c', extract_cookie, "cookie", 0, 1); |
473 | /* TODO: Document */ | 473 | /* TODO: Document */ |
474 | log_sql_register_item(s,p,'f', extract_request_file, "request_file", 0, 1); | 474 | log_sql_register_item(s,p,'f', extract_request_file, "request_file", 0, 1); |
475 | log_sql_register_item(s,p,'H', extract_request_protocol, "request_protocol", 0, 1); | 475 | log_sql_register_item(s,p,'H', extract_request_protocol, "request_protocol", 0, 1); |
476 | log_sql_register_item(s,p,'h', extract_remote_host, "remote_host", 0, 1); | 476 | log_sql_register_item(s,p,'h', extract_remote_host, "remote_host", 0, 1); |
477 | log_sql_register_item(s,p,'I', extract_unique_id, "id", 0, 1); | 477 | log_sql_register_item(s,p,'I', extract_unique_id, "id", 0, 1); |
478 | log_sql_register_item(s,p,'l', extract_remote_logname, "remote_logname", 0, 1); | 478 | log_sql_register_item(s,p,'l', extract_remote_logname, "remote_logname", 0, 1); |
479 | log_sql_register_item(s,p,'m', extract_request_method, "request_method", 0, 1); | 479 | log_sql_register_item(s,p,'m', extract_request_method, "request_method", 0, 1); |
480 | log_sql_register_item(s,p,'M', extract_machine_id, "machine_id", 0, 1); | 480 | log_sql_register_item(s,p,'M', extract_machine_id, "machine_id", 0, 1); |
481 | log_sql_register_item(s,p,'P', extract_child_pid, "child_pid", 0, 0); | 481 | log_sql_register_item(s,p,'P', extract_child_pid, "child_pid", 0, 0); |
482 | log_sql_register_item(s,p,'p', extract_server_port, "server_port", 0, 0); | 482 | log_sql_register_item(s,p,'p', extract_server_port, "server_port", 0, 0); |
483 | log_sql_register_item(s,p,'R', extract_referer, "referer", 1, 1); | 483 | log_sql_register_item(s,p,'R', extract_referer, "referer", 1, 1); |
484 | log_sql_register_item(s,p,'r', extract_request_line, "request_line", 1, 1); | 484 | log_sql_register_item(s,p,'r', extract_request_line, "request_line", 1, 1); |
485 | log_sql_register_item(s,p,'S', extract_request_timestamp, "time_stamp", 0, 0); | 485 | log_sql_register_item(s,p,'S', extract_request_timestamp, "time_stamp", 0, 0); |
486 | log_sql_register_item(s,p,'s', extract_status, "status", 1, 0); | 486 | log_sql_register_item(s,p,'s', extract_status, "status", 1, 0); |
487 | log_sql_register_item(s,p,'T', extract_request_duration, "request_duration", 1, 0); | 487 | log_sql_register_item(s,p,'T', extract_request_duration, "request_duration", 1, 0); |
488 | log_sql_register_item(s,p,'t', extract_request_time, "request_time", 0, 1); | 488 | log_sql_register_item(s,p,'t', extract_request_time, "request_time", 0, 1); |
489 | log_sql_register_item(s,p,'u', extract_remote_user, "remote_user", 0, 1); | 489 | log_sql_register_item(s,p,'u', extract_remote_user, "remote_user", 0, 1); |
490 | log_sql_register_item(s,p,'U', extract_request_uri, "request_uri", 1, 1); | 490 | log_sql_register_item(s,p,'U', extract_request_uri, "request_uri", 1, 1); |
491 | log_sql_register_item(s,p,'v', extract_virtual_host, "virtual_host", 0, 1); | 491 | log_sql_register_item(s,p,'v', extract_virtual_host, "virtual_host", 0, 1); |
492 | 492 | log_sql_register_item(s,p,'V', extract_server_name, "virtual_host", 0, 1); | |
493 | if (global_config.announce) { | 493 | |
494 | ap_add_version_component(p, PACKAGE_NAME"/"PACKAGE_VERSION); | 494 | if (global_config.announce) { |
495 | } | 495 | ap_add_version_component(p, PACKAGE_NAME"/"PACKAGE_VERSION); |
496 | } | ||
496 | /* ap_server_root_relative any default preserve file locations */ | 497 | /* ap_server_root_relative any default preserve file locations */ |
497 | { | 498 | { |
498 | server_rec *cur_s; | 499 | server_rec *cur_s; |
@@ -798,12 +799,14 @@ static int log_sql_transaction(request_rec *orig) | |||
798 | char *cookie_base = "cookies_"; | 799 | char *cookie_base = "cookies_"; |
799 | 800 | ||
800 | 801 | ||
801 | /* Determint the hostname and convert it to all lower-case; */ | 802 | /* Determine the hostname and convert it to all lower-case; */ |
802 | char *servername = apr_pstrdup(orig->pool,(char *)ap_get_server_name(orig)); | 803 | char *servername = apr_pstrdup(orig->pool,(char *)ap_get_server_name(orig)); |
804 | |||
803 | char *p=servername; | 805 | char *p=servername; |
804 | while (*p) { | 806 | while (*p) { |
805 | *p = apr_tolower(*p); | 807 | *p = apr_tolower(*p); |
806 | if (*p == '.') *p = '_'; | 808 | if (*p == '.') *p = '_'; |
809 | if (*p == '-') *p = '_'; | ||
807 | ++p; | 810 | ++p; |
808 | } | 811 | } |
809 | 812 | ||