<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hi,</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Since there does not seem to be much activity, I do not know
how far this email will go.&nbsp; I started to use mod_log_sql recently on my
FreeBSD box and noticed the LogSQLMassVirtualHosting option used the hostname
of the request host (equivalent to the server&#8217;s HTTP_HOST variable) to
create it&#8217;s dynamic tables.&nbsp; After conferring with someone on IRC who
also used mod_log_sql, I wrote a small patch that will provide an option for
either using the HTTP_HOST for the table name or the ServerName defined in your
httpd.conf or VirtualHost configuration.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Basically, I created a new option called LogSQLUseServerName
which can be set to either on or off.&nbsp; Off is the default and replicates the
current behavior.&nbsp; On will make it use ServerName to create your tables.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Patch as follows (use patch &#8211;p0 &lt; patch) to apply
to source.&nbsp; I wrote this patch from 101 so it may not work with earlier versions.&nbsp;
Disclaimer:&nbsp; I am not a C developer, only a part time code hacker so the code
may not be 100% sane (but I believe it is).&nbsp; Use at your own risk.&nbsp; Feel free
to &#8220;fix&#8221; if necessary, just do us all a favor and give it back to
us.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Thanks.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<pre><font size=2 face="Courier New"><span style='font-size:10.0pt'>--- mod_log_sql.c.old&nbsp; Mon Nov&nbsp; 6 18:43:23 2006</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+++ mod_log_sql.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sun Apr&nbsp; 8 22:24:49 2007</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>@@ -55,6 +55,7 @@</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int createtables;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int forcepreserve;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int disablepreserve;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int use_servername;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *machid;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int announce;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logsql_dbconnection db;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>@@ -806,7 +807,16 @@</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> </span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>&nbsp;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Determine the hostname and convert it to all lower-case; */</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *servername = apr_pstrdup(orig-&gt;pool,(char *)ap_get_server_name(orig));</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *servername;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( global_config.use_servername ) {</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; servername = apr_pstrdup(orig-&gt;pool,(char *)orig-&gt;server-&gt;server_hostname);</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // log_error(APLOG_MARK,APLOG_ERR,0,orig-&gt;server, &quot;use_servername defined in config&quot;);</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; servername = apr_pstrdup(orig-&gt;pool,(char *)ap_get_server_name(orig));</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // log_error(APLOG_MARK,APLOG_ERR,0,orig-&gt;server, &quot;using servername %s&quot;, servername);</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> </span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *p=servername;</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (*p) {</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>@@ -1181,6 +1191,11 @@</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;(void *)APR_OFFSETOF(global_config_t, machid), RSRC_CONF,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&quot;Machine ID that the module will log, useful in web clusters to differentiate machines&quot;)</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Use ServerName or the Request Header Name? */</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AP_INIT_FLAG(&quot;LogSQLUseServerName&quot;, set_global_flag_slot,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (void *)APR_OFFSETOF(global_config_t, use_servername), RSRC_CONF,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Determines whether we are going to use the Virtual Host ServerName to create our tables or the request header&quot;)</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Limits on logging */</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AP_INIT_ITERATE(&quot;LogSQLRequestAccept&quot;, add_server_string_slot,</span></font></pre><pre><font
size=2 face="Courier New"><span style='font-size:10.0pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;(void *)APR_OFFSETOF(logsql_state, transfer_accept_list), RSRC_CONF,</span></font></pre>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

</div>

</body>

</html>