summaryrefslogtreecommitdiffstats
path: root/mod_log_sql.c
diff options
context:
space:
mode:
Diffstat (limited to 'mod_log_sql.c')
-rw-r--r--mod_log_sql.c48
1 files changed, 39 insertions, 9 deletions
diff --git a/mod_log_sql.c b/mod_log_sql.c
index 666ac46..a247f30 100644
--- a/mod_log_sql.c
+++ b/mod_log_sql.c
@@ -312,14 +312,44 @@ static const char *set_dbparam_slot(cmd_parms *cmd,
312static const char *set_log_sql_info(cmd_parms *cmd, void *dummy, 312static const char *set_log_sql_info(cmd_parms *cmd, void *dummy,
313 const char *host, const char *user, const char *pwd) 313 const char *host, const char *user, const char *pwd)
314{ 314{
315 if (*host != '.') { 315 ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, cmd->server,
316 set_dbparam(cmd, NULL, "host", host); 316 "%s - %s - %s", host, user, pwd);
317 } 317 if (!user) { /* user is null, so only one arg passed */
318 if (*user != '.') { 318 apr_uri_t uri;
319 set_dbparam(cmd, NULL, "user", user); 319 apr_uri_parse(cmd->pool, host, &uri);
320 } 320 if (uri.scheme) {
321 if (*pwd != '.') { 321 /* set DB plugin */
322 set_dbparam(cmd, NULL, "passwd", pwd); 322 }
323 if (uri.hostname) {
324 set_dbparam(cmd, NULL, "host", uri.hostname);
325 }
326 if (uri.user) {
327 set_dbparam(cmd, NULL, "user", uri.user);
328 }
329 if (uri.password) {
330 set_dbparam(cmd, NULL, "passwd", uri.password);
331 }
332 if (uri.port_str) {
333 set_dbparam(cmd, NULL, "tcpport", uri.port_str);
334 }
335 if (uri.path) {
336 /* extract Database name */
337 char *off = strchr(++uri.path,'/');
338 if (off)
339 *off='\0';
340 set_dbparam(cmd, NULL, "database", uri.path);
341
342 }
343 } else {
344 if (*host != '.') {
345 set_dbparam(cmd, NULL, "host", host);
346 }
347 if (*user != '.') {
348 set_dbparam(cmd, NULL, "user", user);
349 }
350 if (*pwd != '.') {
351 set_dbparam(cmd, NULL, "passwd", pwd);
352 }
323 } 353 }
324 return NULL; 354 return NULL;
325} 355}
@@ -1048,7 +1078,7 @@ static const command_rec log_sql_cmds[] = {
1048 (void *)APR_OFFSETOF(global_config_t, createtables), RSRC_CONF, 1078 (void *)APR_OFFSETOF(global_config_t, createtables), RSRC_CONF,
1049 "Turn on module's capability to create its SQL tables on the fly") 1079 "Turn on module's capability to create its SQL tables on the fly")
1050 , 1080 ,
1051 AP_INIT_TAKE3("LogSQLLoginInfo", set_log_sql_info, NULL, RSRC_CONF, 1081 AP_INIT_TAKE13("LogSQLLoginInfo", set_log_sql_info, NULL, RSRC_CONF,
1052 "The database host, user-id and password for logging") 1082 "The database host, user-id and password for logging")
1053 , 1083 ,
1054 AP_INIT_TAKE2("LogSQLDBParam", set_dbparam, NULL, RSRC_CONF, 1084 AP_INIT_TAKE2("LogSQLDBParam", set_dbparam, NULL, RSRC_CONF,