diff options
Diffstat (limited to 'mod_log_sql.c')
| -rw-r--r-- | mod_log_sql.c | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/mod_log_sql.c b/mod_log_sql.c index 6d3110c..3fc7ace 100644 --- a/mod_log_sql.c +++ b/mod_log_sql.c | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | /* $Id: mod_log_sql.c,v 1.18 2002/11/14 22:52:54 helios Exp $ */ | 1 | /* $Id: mod_log_sql.c,v 1.19 2002/11/27 07:13:58 helios Exp $ */ |
| 2 | 2 | ||
| 3 | /* --------* | 3 | /* --------* |
| 4 | * DEFINES * | 4 | * DEFINES * |
| 5 | * --------*/ | 5 | * --------*/ |
| 6 | 6 | ||
| 7 | /* The enduser may wish to modify this */ | 7 | /* The enduser may wish to modify this */ |
| 8 | #undef DEBUG | 8 | #define DEBUG |
| 9 | 9 | ||
| 10 | /* The enduser won't modify these */ | 10 | /* The enduser won't modify these */ |
| 11 | #define MYSQL_ERROR(mysql) ((mysql)?(mysql_error(mysql)):"MySQL server has gone away") | 11 | #define MYSQL_ERROR(mysql) ((mysql)?(mysql_error(mysql)):"MySQL server has gone away") |
| @@ -19,6 +19,7 @@ | |||
| 19 | * ---------*/ | 19 | * ---------*/ |
| 20 | #include <time.h> | 20 | #include <time.h> |
| 21 | #include <stdio.h> | 21 | #include <stdio.h> |
| 22 | #include <stdlib.h> | ||
| 22 | #include "httpd.h" | 23 | #include "httpd.h" |
| 23 | #include "http_config.h" | 24 | #include "http_config.h" |
| 24 | #include "http_log.h" | 25 | #include "http_log.h" |
| @@ -57,6 +58,11 @@ char *db_pwd = NULL; | |||
| 57 | char *mach_id = NULL; | 58 | char *mach_id = NULL; |
| 58 | char *socket_file = "/tmp/mysql.sock"; | 59 | char *socket_file = "/tmp/mysql.sock"; |
| 59 | unsigned int tcp_port = 3306; | 60 | unsigned int tcp_port = 3306; |
| 61 | #ifdef WANT_DELAYED_MYSQL_INSERT | ||
| 62 | char *insert_stmt = "insert delayed into "; | ||
| 63 | #else | ||
| 64 | char *insert_stmt = "insert into "; | ||
| 65 | #endif | ||
| 60 | 66 | ||
| 61 | typedef const char *(*item_key_func) (request_rec *, char *); | 67 | typedef const char *(*item_key_func) (request_rec *, char *); |
| 62 | 68 | ||
| @@ -601,7 +607,7 @@ int open_logdb_link(server_rec* s) | |||
| 601 | if (force_preserve) | 607 | if (force_preserve) |
| 602 | return 3; | 608 | return 3; |
| 603 | 609 | ||
| 604 | if (mysql_log != NULL) | 610 | if (mysql_log) |
| 605 | return 2; | 611 | return 2; |
| 606 | 612 | ||
| 607 | if (db_name) { | 613 | if (db_name) { |
| @@ -609,6 +615,10 @@ int open_logdb_link(server_rec* s) | |||
| 609 | mysql_log = mysql_real_connect(&sql_server, db_host, db_user, db_pwd, db_name, tcp_port, socket_file, 0); | 615 | mysql_log = mysql_real_connect(&sql_server, db_host, db_user, db_pwd, db_name, tcp_port, socket_file, 0); |
| 610 | 616 | ||
| 611 | if (mysql_log) { | 617 | if (mysql_log) { |
| 618 | #ifdef DEBUG | ||
| 619 | ap_log_error(APLOG_MARK,DEBUGLEVEL,s,"HOST: '%s' PORT: '%d' DB: '%s' USER: '%s' SOCKET: '%s'", | ||
| 620 | db_host, tcp_port, db_name, db_user, socket_file); | ||
| 621 | #endif | ||
| 612 | return 1; | 622 | return 1; |
| 613 | } else { | 623 | } else { |
| 614 | #ifdef DEBUG | 624 | #ifdef DEBUG |
| @@ -623,28 +633,10 @@ int open_logdb_link(server_rec* s) | |||
| 623 | return 0; | 633 | return 0; |
| 624 | } | 634 | } |
| 625 | 635 | ||
| 626 | #ifdef DEBUG | ||
| 627 | static int trace(void *data, const char *key, const char *val) | ||
| 628 | { | ||
| 629 | FILE *fp; | ||
| 630 | request_rec *r = (request_rec *)data; | ||
| 631 | |||
| 632 | fp = pfopen(r->pool, "/tmp/trace", "a"); | ||
| 633 | |||
| 634 | if (fp) { | ||
| 635 | fprintf(fp, "Field '%s' == '%s'\n", key, val); | ||
| 636 | } | ||
| 637 | |||
| 638 | pfclose(r->pool, fp); | ||
| 639 | |||
| 640 | return TRUE; | ||
| 641 | } | ||
| 642 | #endif | ||
| 643 | |||
| 644 | const char *extract_table(void *data, const char *key, const char *val) | 636 | const char *extract_table(void *data, const char *key, const char *val) |
| 645 | { | 637 | { |
| 646 | request_rec *r = (request_rec *)data; | 638 | request_rec *r = (request_rec *)data; |
| 647 | 639 | ||
| 648 | return ap_pstrcat(r->pool, key, " = ", val, " ", NULL); | 640 | return ap_pstrcat(r->pool, key, " = ", val, " ", NULL); |
| 649 | } | 641 | } |
| 650 | 642 | ||
| @@ -1409,7 +1401,7 @@ int log_sql_transaction(request_rec *orig) | |||
| 1409 | } | 1401 | } |
| 1410 | } | 1402 | } |
| 1411 | if ( itemsets != "" ) { | 1403 | if ( itemsets != "" ) { |
| 1412 | note_query = ap_pstrcat(r->pool, "insert into `", cls->notes_table_name, "` (id, item, val) values ", itemsets, NULL); | 1404 | note_query = ap_pstrcat(r->pool, insert_stmt, "`", cls->notes_table_name, "` (id, item, val) values ", itemsets, NULL); |
| 1413 | #ifdef DEBUG | 1405 | #ifdef DEBUG |
| 1414 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: note string: %s", note_query); | 1406 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: note string: %s", note_query); |
| 1415 | #endif | 1407 | #endif |
| @@ -1437,7 +1429,7 @@ int log_sql_transaction(request_rec *orig) | |||
| 1437 | } | 1429 | } |
| 1438 | } | 1430 | } |
| 1439 | if ( itemsets != "" ) { | 1431 | if ( itemsets != "" ) { |
| 1440 | hout_query = ap_pstrcat(r->pool, "insert into `", cls->hout_table_name, "` (id, item, val) values ", itemsets, NULL); | 1432 | hout_query = ap_pstrcat(r->pool, insert_stmt, "`", cls->hout_table_name, "` (id, item, val) values ", itemsets, NULL); |
| 1441 | #ifdef DEBUG | 1433 | #ifdef DEBUG |
| 1442 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: header_out string: %s", hout_query); | 1434 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: header_out string: %s", hout_query); |
| 1443 | #endif | 1435 | #endif |
| @@ -1466,7 +1458,7 @@ int log_sql_transaction(request_rec *orig) | |||
| 1466 | } | 1458 | } |
| 1467 | } | 1459 | } |
| 1468 | if ( itemsets != "" ) { | 1460 | if ( itemsets != "" ) { |
| 1469 | hin_query = ap_pstrcat(r->pool, "insert into `", cls->hin_table_name, "` (id, item, val) values ", itemsets, NULL); | 1461 | hin_query = ap_pstrcat(r->pool, insert_stmt, "`", cls->hin_table_name, "` (id, item, val) values ", itemsets, NULL); |
| 1470 | #ifdef DEBUG | 1462 | #ifdef DEBUG |
| 1471 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: header_in string: %s", hin_query); | 1463 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: header_in string: %s", hin_query); |
| 1472 | #endif | 1464 | #endif |
| @@ -1496,7 +1488,7 @@ int log_sql_transaction(request_rec *orig) | |||
| 1496 | 1488 | ||
| 1497 | } | 1489 | } |
| 1498 | if ( itemsets != "" ) { | 1490 | if ( itemsets != "" ) { |
| 1499 | cookie_query = ap_pstrcat(r->pool, "insert into `", cls->cookie_table_name, "` (id, item, val) values ", itemsets, NULL); | 1491 | cookie_query = ap_pstrcat(r->pool, insert_stmt, "`", cls->cookie_table_name, "` (id, item, val) values ", itemsets, NULL); |
| 1500 | #ifdef DEBUG | 1492 | #ifdef DEBUG |
| 1501 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: cookie string: %s", cookie_query); | 1493 | ap_log_error(APLOG_MARK,DEBUGLEVEL,orig->server,"mod_log_sql: cookie string: %s", cookie_query); |
| 1502 | #endif | 1494 | #endif |
| @@ -1504,7 +1496,7 @@ int log_sql_transaction(request_rec *orig) | |||
| 1504 | 1496 | ||
| 1505 | 1497 | ||
| 1506 | /* Set up the actual INSERT statement */ | 1498 | /* Set up the actual INSERT statement */ |
| 1507 | access_query = ap_pstrcat(r->pool, "insert into `", cls->transfer_table_name, "` (", fields, ") values (", values, ")", NULL); | 1499 | access_query = ap_pstrcat(r->pool, insert_stmt, "`", cls->transfer_table_name, "` (", fields, ") values (", values, ")", NULL); |
| 1508 | 1500 | ||
| 1509 | #ifdef DEBUG | 1501 | #ifdef DEBUG |
| 1510 | ap_log_error(APLOG_MARK,DEBUGLEVEL,r->server,"mod_log_sql: access string: %s", access_query); | 1502 | ap_log_error(APLOG_MARK,DEBUGLEVEL,r->server,"mod_log_sql: access string: %s", access_query); |
