diff options
author | Edward Rudd | 2004-06-03 04:32:08 +0000 |
---|---|---|
committer | Edward Rudd | 2004-06-03 04:32:08 +0000 |
commit | 21122f1bb734aa00fc14564d801ea9dc4804c793 (patch) | |
tree | 3d4920b9a47a3528de8c4ac80c402853e9d14719 /mod_log_sql.c | |
parent | f73dc64cd6dba290a7e062520a421de2b02f82a4 (diff) |
moved quoting of fields to DB driver
fixed segfault in the mysql escape string function
DBi driver working with postgresql.
Diffstat (limited to 'mod_log_sql.c')
-rw-r--r-- | mod_log_sql.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/mod_log_sql.c b/mod_log_sql.c index fc9dcc0..dace2d4 100644 --- a/mod_log_sql.c +++ b/mod_log_sql.c | |||
@@ -504,6 +504,8 @@ static void log_sql_module_init(server_rec *s, apr_pool_t *p) | |||
504 | cls->preserve_file = default_p; | 504 | cls->preserve_file = default_p; |
505 | } | 505 | } |
506 | } | 506 | } |
507 | global_config.db.p = p; | ||
508 | |||
507 | #if defined(WITH_APACHE20) | 509 | #if defined(WITH_APACHE20) |
508 | return OK; | 510 | return OK; |
509 | #endif | 511 | #endif |
@@ -908,9 +910,7 @@ static int log_sql_transaction(request_rec *orig) | |||
908 | fields = apr_pstrcat(r->pool, fields, (i ? "," : ""), | 910 | fields = apr_pstrcat(r->pool, fields, (i ? "," : ""), |
909 | item->sql_field_name, NULL); | 911 | item->sql_field_name, NULL); |
910 | values = apr_pstrcat(r->pool, values, (i ? "," : ""), | 912 | values = apr_pstrcat(r->pool, values, (i ? "," : ""), |
911 | (item->string_contents ? "'" : ""), | 913 | global_config.driver->escape(formatted_item, r->pool,&global_config.db), NULL); |
912 | global_config.driver->escape(formatted_item, r->pool,&global_config.db), | ||
913 | (item->string_contents ? "'" : ""), NULL); | ||
914 | } | 914 | } |
915 | 915 | ||
916 | /* Work through the list of notes defined by LogSQLWhichNotes */ | 916 | /* Work through the list of notes defined by LogSQLWhichNotes */ |
@@ -923,19 +923,19 @@ static int log_sql_transaction(request_rec *orig) | |||
923 | if ((theitem = apr_table_get(r->notes, *ptrptr))) { | 923 | if ((theitem = apr_table_get(r->notes, *ptrptr))) { |
924 | itemsets = apr_pstrcat(r->pool, itemsets, | 924 | itemsets = apr_pstrcat(r->pool, itemsets, |
925 | (i > 0 ? "," : ""), | 925 | (i > 0 ? "," : ""), |
926 | "('", | 926 | "(", |
927 | unique_id, | 927 | unique_id, |
928 | "','", | 928 | ",", |
929 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), | 929 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), |
930 | "','", | 930 | ",", |
931 | global_config.driver->escape(theitem, r->pool,&global_config.db), | 931 | global_config.driver->escape(theitem, r->pool,&global_config.db), |
932 | "')", | 932 | ")", |
933 | NULL); | 933 | NULL); |
934 | i++; | 934 | i++; |
935 | } | 935 | } |
936 | } | 936 | } |
937 | if ( itemsets != "" ) { | 937 | if ( itemsets != "" ) { |
938 | note_query = apr_psprintf(r->pool, "insert %s into `%s` (id, item, val) values %s", | 938 | note_query = apr_psprintf(r->pool, "insert %s into %s (id, item, val) values %s", |
939 | /*global_config.insertdelayed?"delayed":*/"", notes_tablename, itemsets); | 939 | /*global_config.insertdelayed?"delayed":*/"", notes_tablename, itemsets); |
940 | 940 | ||
941 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: note string: %s", note_query); | 941 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: note string: %s", note_query); |
@@ -951,19 +951,19 @@ static int log_sql_transaction(request_rec *orig) | |||
951 | if ((theitem = apr_table_get(r->headers_out, *ptrptr))) { | 951 | if ((theitem = apr_table_get(r->headers_out, *ptrptr))) { |
952 | itemsets = apr_pstrcat(r->pool, itemsets, | 952 | itemsets = apr_pstrcat(r->pool, itemsets, |
953 | (i > 0 ? "," : ""), | 953 | (i > 0 ? "," : ""), |
954 | "('", | 954 | "(", |
955 | unique_id, | 955 | unique_id, |
956 | "','", | 956 | ",", |
957 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), | 957 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), |
958 | "','", | 958 | ",", |
959 | global_config.driver->escape(theitem, r->pool,&global_config.db), | 959 | global_config.driver->escape(theitem, r->pool,&global_config.db), |
960 | "')", | 960 | ")", |
961 | NULL); | 961 | NULL); |
962 | i++; | 962 | i++; |
963 | } | 963 | } |
964 | } | 964 | } |
965 | if ( itemsets != "" ) { | 965 | if ( itemsets != "" ) { |
966 | hout_query = apr_psprintf(r->pool, "insert %s into `%s` (id, item, val) values %s", | 966 | hout_query = apr_psprintf(r->pool, "insert %s into %s (id, item, val) values %s", |
967 | /*global_config.insertdelayed?"delayed":*/"", hout_tablename, itemsets); | 967 | /*global_config.insertdelayed?"delayed":*/"", hout_tablename, itemsets); |
968 | 968 | ||
969 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: header_out string: %s", hout_query); | 969 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: header_out string: %s", hout_query); |
@@ -980,19 +980,19 @@ static int log_sql_transaction(request_rec *orig) | |||
980 | if ((theitem = apr_table_get(r->headers_in, *ptrptr))) { | 980 | if ((theitem = apr_table_get(r->headers_in, *ptrptr))) { |
981 | itemsets = apr_pstrcat(r->pool, itemsets, | 981 | itemsets = apr_pstrcat(r->pool, itemsets, |
982 | (i > 0 ? "," : ""), | 982 | (i > 0 ? "," : ""), |
983 | "('", | 983 | "(", |
984 | unique_id, | 984 | unique_id, |
985 | "','", | 985 | ",", |
986 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), | 986 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), |
987 | "','", | 987 | ",", |
988 | global_config.driver->escape(theitem, r->pool,&global_config.db), | 988 | global_config.driver->escape(theitem, r->pool,&global_config.db), |
989 | "')", | 989 | ")", |
990 | NULL); | 990 | NULL); |
991 | i++; | 991 | i++; |
992 | } | 992 | } |
993 | } | 993 | } |
994 | if ( itemsets != "" ) { | 994 | if ( itemsets != "" ) { |
995 | hin_query = apr_psprintf(r->pool, "insert %s into `%s` (id, item, val) values %s", | 995 | hin_query = apr_psprintf(r->pool, "insert %s into %s (id, item, val) values %s", |
996 | /*global_config.insertdelayed?"delayed":*/"", hin_tablename, itemsets); | 996 | /*global_config.insertdelayed?"delayed":*/"", hin_tablename, itemsets); |
997 | 997 | ||
998 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: header_in string: %s", hin_query); | 998 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: header_in string: %s", hin_query); |
@@ -1009,20 +1009,20 @@ static int log_sql_transaction(request_rec *orig) | |||
1009 | if ( strncmp((theitem = extract_specific_cookie(r, *ptrptr)), "-", 1) ) { | 1009 | if ( strncmp((theitem = extract_specific_cookie(r, *ptrptr)), "-", 1) ) { |
1010 | itemsets = apr_pstrcat(r->pool, itemsets, | 1010 | itemsets = apr_pstrcat(r->pool, itemsets, |
1011 | (i > 0 ? "," : ""), | 1011 | (i > 0 ? "," : ""), |
1012 | "('", | 1012 | "(", |
1013 | unique_id, | 1013 | unique_id, |
1014 | "','", | 1014 | ",", |
1015 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), | 1015 | global_config.driver->escape(*ptrptr, r->pool,&global_config.db), |
1016 | "','", | 1016 | ",", |
1017 | global_config.driver->escape(theitem, r->pool,&global_config.db), | 1017 | global_config.driver->escape(theitem, r->pool,&global_config.db), |
1018 | "')", | 1018 | ")", |
1019 | NULL); | 1019 | NULL); |
1020 | i++; | 1020 | i++; |
1021 | } | 1021 | } |
1022 | 1022 | ||
1023 | } | 1023 | } |
1024 | if ( itemsets != "" ) { | 1024 | if ( itemsets != "" ) { |
1025 | cookie_query = apr_psprintf(r->pool, "insert %s into `%s` (id, item, val) values %s", | 1025 | cookie_query = apr_psprintf(r->pool, "insert %s into %s (id, item, val) values %s", |
1026 | /*global_config.insertdelayed?"delayed":*/"", cookie_tablename, itemsets); | 1026 | /*global_config.insertdelayed?"delayed":*/"", cookie_tablename, itemsets); |
1027 | 1027 | ||
1028 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: cookie string: %s", cookie_query); | 1028 | log_error(APLOG_MARK,APLOG_DEBUG,0, orig->server,"mod_log_sql: cookie string: %s", cookie_query); |
@@ -1030,7 +1030,7 @@ static int log_sql_transaction(request_rec *orig) | |||
1030 | 1030 | ||
1031 | 1031 | ||
1032 | /* Set up the actual INSERT statement */ | 1032 | /* Set up the actual INSERT statement */ |
1033 | access_query = apr_psprintf(r->pool, "insert %s into `%s` (%s) values (%s)", | 1033 | access_query = apr_psprintf(r->pool, "insert %s into %s (%s) values (%s)", |
1034 | /*global_config.insertdelayed?"delayed":*/"", transfer_tablename, fields, values); | 1034 | /*global_config.insertdelayed?"delayed":*/"", transfer_tablename, fields, values); |
1035 | 1035 | ||
1036 | log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"mod_log_sql: access string: %s", access_query); | 1036 | log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"mod_log_sql: access string: %s", access_query); |