Content-Security-Policy: default-src 'none'
Content-Type: text/plain; charset=UTF-8
Content-Length: 12915
Content-Disposition: inline; filename="CHANGELOG"
Last-Modified: Sun, 26 Oct 2025 13:13:18 GMT
Expires: Wed, 24 Oct 2035 13:13:18 GMT
ETag: "27a453596ac55f5b32073e301c06fcf96995df66"
$Id: CHANGELOG,v 1.14 2002/06/27 20:09:17 helios Exp $
TODO:
* Rethink documentation flow and rewrite?
* Port connection portion to other DBMS? Genericize the module? Start with PostgreSQL.
* check for mandatory conf directives / syntax quit if not
* GNU autoconf
* merge server config into vh config
* port to Apache 2.x
* does determining table name in massvirtual mode upon every request
cause performance degradation? If so fix.
* LogSQLRotateLogs directive with daily/monthly/weekly/etc.
* new format char: IP as bigint?
* socket-based middleman daemon with configurable conns?
CHANGES:
1.17:
* Renamed the module mod_log_sql to conform to the project goal of
database-inspecificity.
* Added capability of logging Notes field. This is useful for folks using
custom modules that provide loggable info in the notes, e.g. mod_gzip.
A new directive MySQLWhichNotes configures which notes to log to the
notes_log table.
* Added capability of logging inbound and outbound headers. New directives
LogSQLWhichHeadersIn and LogSQLWhichHeadersOut configure which headers to
capture. Headers are stored in their own table or tables.
* Fixed potential segfault in preserve file function due to silly pfclose
placement. (Only affected user if the preserve file couldn't
be opened.)
* Changed default socket file to /tmp/mysql.sock because that's the
default on a compiled MySQL.
* Also check for '-' when I'm creating the table when MySQLMassVirtualHosting
is on, and change it to underscore. (Already did this with '.')
* Took away the prepend of /tmp to the preserve filename. Now the
user can specify whatever local path they want. I figure that
filesystem permissions will prevent people from doing anything
really dumb, and people have requested this change.
* Better checking in the extract_cookie routine. Before, it could
segfault if a person specified "c" but didn't define MySQLWhichCookie.
* Some code reorg/renaming for clarity and to support the new direction
of database inspecificity. More to come.
* Simplified error messages.
* Table creation now uses safe_mysql_query and checks the result.
* Config directives used to begin with MySQL, now begin with LogSQL.
This is for database inspecificity. In your httpd.conf just do
a search-and-replace.
* More robust table-creation code with error checking. [The race condition
that several users have reported may still exist, but this will go a long
way toward debugging the condition.]
* Fixed bug whereby a MySQL connection was abandoned on reopen; the old
connection is now properly closed first.
* Minor: remind user not to set createtables when massvirtual is on.
* If Apache started but MySQL was unavailable, the module would do
everything it was supposed to (preserve entries, etc.) but not notify
the sysadmin. Added a log message to alert sysadmin if MySQL is
unreachable at startup.
* Migrated to the Artistic License (as used by Perl).
1.16:
* Moved all the user DEFINEs inside the .c file -- splitting them
between the C and the Makefile was getting just too cumbersome.
* A new MySQLPreserveFile runtime config directive. In the last
version the name of the preserve-file was hardcoded and therefore
global across all Apache virtual servers. Now the user can configure
this on a per-virthost basis. It defaults to a hardcoded value
if the user does not define it. The module *always* prepends /tmp/
to the user-supplied value for security reasons.
* A new MySQLSocketFile runtime config directive. In the last
version the name of the MySQL socket was hardcoded. Now the user
can configure this at Apache runtime. However, it is a global
setting (set once) just like the rest of the actual database info is.
It defaults to a hardcoded value if the user does not define it.
* A new MySQLCreateTables runtime config directive. Module can now
create the access table on-the-fly. Table creation takes place
during the virtual server's first request and is flagged after that to
avoid repetition.
* A new MySQLMassVirtualHosting runtime config directive. This flag
currently only activates a single feature: each virtual server gets
its very own dynamically-determined table prefixed 'access_' with the
server's name following. It also implies MySQLCreateTables On, and
obviates the need for MySQLTransferLogTable.
* escape_query (was mysql_escape_log) is now called on every item
rather than first checking to see if it needs to be called, which
was probably a big waste of time. Furthermore the routine now
uses a native MySQL API call to do the escaping instead of doing
this 'manually.' It attempts to use the charset-respectful MySQL
call first, but falls back on a more generic call if the MySQL
server is unavailable (e.g. if it goes offline).
* Open preserve file with pfopen instead of regular fopen to
take advantage of pool structure.
* As forewarned, I finally got rid of the code to support separate
Referer and Agent logs.
* Finally brought the make process up-to-date with the way Apache
likes modules to be done.
* MySQLWhichCookie is now configurable on a per-virtualserver basis.
Before it was single-shot global only.
* Reduced sleep time on a retry to 1/4 second from 1/2 second.
* Confirmed that this module will compile with -pedantic ... but not
with -ansi. :-)
1.15:
* Vastly improved error reporting is a lot clearer about lost db
connections, etc. Some unreachable code has been corrected.
* The way that query-retries and openlink-retries are handled has
been tweaked and improved.
* Missed database entries are now preserved for later inclusion. This
file is not held open but is closed after each use, so it's safe
to delete while Apache is running.
* Now each child instantiates its MySQL link upon birth rather than
waiting for its first request.
1.14:
* Improved the apxs instructions based on user feedback, including the
mysql.sock define issue.
* Corrected the INSTALL example directives to the new format.
* Some improvements to 'make distro'
1.13:
* Now use ap_get_server_name() in extract_virtual_host() to fix the
instances where mass-virtual-hosting sites were getting the wrong
server-name written to the log.
* Now use mysql_real_connect() instead of mysql_connect(). The
latter's use was deprecated and did not work in MySQL 4.
* There is now a DEFINE for the socket name. This is used by the
mysql_real_connect() function and is relevant only if the db resides
on localhost. It is irrelevant if the db resides on a networked
machine and is ignored in that case (although it still must be defined
for the connect to work).
1.12:
* Added a mysql_close() call to get rid of those annoying MySQL
complaints every time an httpd child process terminates. (Apache
1.3 or later.)
* Considerable code reorganization and cleanup.
1.11:
* Completely re-worked the cookie code. Now the user can instruct
mod_log_mysql which cookie (out of many available) to log. (See
the online directives documentation and FAQ.)
* New config capability: 'H' to log the request protocol
(e.g. HTTP/1.1)
* New config capability: 'm' to log the request method
(e.g. GET, PUT, etc.)
* New config capabilities: 'z' 'q' & 'Q' to log SSL_CIPHER,
SSL_CIPHER_USEKEYSIZE and SSL_CIPHER_ALGKEYSIZE. These require
openssl and glibc-devel to be installed. (See the online
directives documentation and FAQ.)
* Fixed a bug in make_combined_log.pl that caused it to generate
incorrect output on single-digit days.
* Fixed make_combined_log.pl to use the data logged by 'H' and 'm'.
* Migrated all log_error calls to the newer ap_log_error call.
* Added a DEBUG define to activate certain debugging/informational
error-log messag Paul Querna