summaryrefslogtreecommitdiffstatsabout
path: root/src/mod_log_sql_ssl.c
diff options
context:
space:
mode:
authorEdward Rudd <urkle@outoforder.cc>2008-09-21 15:54:12 (GMT)
committer Edward Rudd <urkle@outoforder.cc>2008-09-21 15:54:12 (GMT)
commitba30ceeb705e9b4d40ce0d98f6a4e047d47ce919 (patch)
tree5768679317a303031c80be6cba683b6addeb07ac /src/mod_log_sql_ssl.c
parentd33662354f64354c601ae257bd5b1b043c484d97 (diff)
moved all modules source to src subdirectory.. Moved header files into include subdirectory
cleaned up makefiles.
Diffstat (limited to 'src/mod_log_sql_ssl.c')
-rw-r--r--src/mod_log_sql_ssl.c106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/mod_log_sql_ssl.c b/src/mod_log_sql_ssl.c
new file mode 100644
index 0000000..47bba8b
--- /dev/null
+++ b/src/mod_log_sql_ssl.c
@@ -0,0 +1,106 @@
1/* $Id$ */
2
3#if defined(WITH_APACHE20)
4# include "apache20.h"
5#elif defined(WITH_APACHE13)
6# include "apache13.h"
7#else
8# error Unsupported Apache version
9#endif
10
11#ifdef HAVE_CONFIG_H
12/* Undefine these to prevent conflicts between Apache ap_config_auto.h and
13 * my config.h. Only really needed for Apache < 2.0.48, but it can't hurt.
14 */
15#undef PACKAGE_BUGREPORT
16#undef PACKAGE_NAME
17#undef PACKAGE_STRING
18#undef PACKAGE_TARNAME
19#undef PACKAGE_VERSION
20
21#include "config.h"
22#endif
23
24#include "mod_log_sql.h"
25
26#include "mod_ssl.h"
27
28#if defined(WITH_APACHE20)
29static APR_OPTIONAL_FN_TYPE(ssl_var_lookup) *header_ssl_lookup = NULL;
30# define TEST_SSL(r) header_ssl_lookup
31#elif defined(WITH_APACHE13)
32# define TEST_SSL(r) ap_ctx_get(r->connection->client->ctx, "ssl")
33# define header_ssl_lookup ssl_var_lookup
34#endif
35
36static const char *extract_ssl_keysize(request_rec *r, char *a)
37{
38 char *result = NULL;
39 if (TEST_SSL(r) != NULL)
40 {
41 result = header_ssl_lookup(r->pool, r->server, r->connection, r, "SSL_CIPHER_USEKEYSIZE");
42 log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"SSL_KEYSIZE: %s", result);
43 if (result && result[0])
44 return result;
45 else
46 return "0";
47 } else {
48 return "0";
49 }
50}
51
52static const char *extract_ssl_maxkeysize(request_rec *r, char *a)
53{
54 char *result = NULL;
55 if (TEST_SSL(r) != NULL)
56 {
57 result = header_ssl_lookup(r->pool, r->server, r->connection, r, "SSL_CIPHER_ALGKEYSIZE");
58 log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"SSL_ALGKEYSIZE: %s", result);
59 if (result && result[0])
60 return result;
61 else
62 return "0";
63 } else {
64 return "0";
65 }
66}
67
68static const char *extract_ssl_cipher(request_rec *r, char *a)
69{
70 char *result = NULL;
71 if (TEST_SSL(r) != NULL)
72 {
73 result = header_ssl_lookup(r->pool, r->server, r->connection, r, "SSL_CIPHER");
74 log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"SSL_CIPHER: %s", result);
75 if (result && result[0])
76 return result;
77 else
78 return "0";
79 } else {
80 return "-";
81 }
82}
83
84
85LOGSQL_REGISTER(ssl)
86{
87 log_sql_register_function(p, "ssl_keysize", extract_ssl_keysize, LOGSQL_FUNCTION_REQ_FINAL);
88 log_sql_register_function(p, "ssl_maxkeysize", extract_ssl_maxkeysize, LOGSQL_FUNCTION_REQ_FINAL);
89 log_sql_register_function(p, "ssl_cipher", extract_ssl_cipher, LOGSQL_FUNCTION_REQ_FINAL);
90
91 log_sql_register_alias(s,p,'q', "ssl_keysize");
92 log_sql_register_alias(s,p,'Q', "ssl_maxkeysize");
93 log_sql_register_alias(s,p,'z', "ssl_cipher");
94
95 log_sql_register_field(p, "ssl_keysize", "ssl_keysize", NULL,
96 "ssl_keysize", LOGSQL_DATATYPE_VARCHAR, 0);
97 log_sql_register_field(p, "ssl_maxkeysize", "ssl_maxkeysize", NULL,
98 "ssl_maxkeysize", LOGSQL_DATATYPE_VARCHAR, 0);
99 log_sql_register_field(p, "ssl_cipher", "ssl_cipher", NULL,
100 "ssl_cipher", LOGSQL_DATATYPE_VARCHAR, 0);
101
102#if defined(WITH_APACHE20)
103 header_ssl_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup);
104#endif
105 LOGSQL_REGISTER_RETURN;
106}