From bf387bc750caf37fe2cbe45a901161861fc50b01 Mon Sep 17 00:00:00 2001 From: Edward Rudd Date: Sat, 3 Apr 2004 18:27:23 +0000 Subject: Added gen_todo.pl to extract TODO items from source code. --- Makefile.in | 3 +++ TODO | 22 ---------------------- TODO.in | 23 +++++++++++++++++++++++ gen_todo.pl | 41 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 22 deletions(-) delete mode 100644 TODO create mode 100644 TODO.in create mode 100755 gen_todo.pl diff --git a/Makefile.in b/Makefile.in index 2789904..4061629 100644 --- a/Makefile.in +++ b/Makefile.in @@ -74,6 +74,9 @@ all-subdirs install-subdirs activate-subdirs clean-subdirs distclean-subdirs: fi; \ done; +TODO: TODO.in + @./gen_todo.pl + $(TARGET): $(SOURCES) $(HEADERS) @@APXS_BIN@ -c -o $(TARGET) $(INCLUDES) $(CFLAGS) \ $(LDADD) @DEFS@ @APACHE_DEFS@ $(SOURCES) diff --git a/TODO b/TODO deleted file mode 100644 index 75dacbe..0000000 --- a/TODO +++ /dev/null @@ -1,22 +0,0 @@ -$Id: TODO,v 1.1 2004/02/12 03:21:35 urkle Exp $ - -TODO: -* Port connection portion to other DBMS? Genericize the module? Start with - PostgreSQL. (provider mechanism, and libDBI) -* 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? ( not w/ ipV6 ) -* socket-based middleman daemon with configurable conns, or connect/disconnect. - DBI connection pool when I switch to DBI. -* ignore by cookie -* tools to import logs into SQL (waiting on permission from author) -* Directive to yes/no create ancillary tables (or just access table) -* break module into separate code files - separate DB implimentation into sub-modules via provider mechanism -* convert documentation to docbook -* add document building to Makefile.in -* investigate thread safety issues (libmysqlclient_r) - Add thread locks if using standard mysqlclient -* rewrite main core logging function to optimize for speed. -* Clean up table creation code. diff --git a/TODO.in b/TODO.in new file mode 100644 index 0000000..c05a8c5 --- /dev/null +++ b/TODO.in @@ -0,0 +1,23 @@ +$Id: TODO,v 1.1 2004/02/12 03:21:35 urkle Exp $ + +TODO: +* Port connection portion to other DBMS? Genericize the module? Start with + PostgreSQL. (provider mechanism, and libDBI) +* does determining table name in massvirtual mode upon every request + cause performance degradation? If so fix. No other feasable way to fix this, + unless you cache, but then for large amounts of hosts, this can be a waste. +* LogSQLRotateLogs directive with daily/monthly/weekly/etc. +* socket-based middleman daemon with configurable conns, or connect/disconnect. +* DBI connection pool when I switch to DBI. +* ignore by cookie +* break module into separate code files + SSL already separated. + separate DB implimentation into sub-modules via provider mechanism +* investigate thread safety issues + Use libmysqlclient_r for threaded MPM (or always?) + Add thread locks if using standard mysqlclient + Check locking issues with the preserve file? +* rewrite main core logging function to optimize for speed. +* Clean up table creation code. + support DB independent way of defining the tables +----- diff --git a/gen_todo.pl b/gen_todo.pl new file mode 100755 index 0000000..d90d2b2 --- /dev/null +++ b/gen_todo.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +# Copyright 2003-2004 Edward Rudd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +use strict; + +opendir(MYDIR, ".") or die "Unable to open directory"; +print "Building TODO file for source directory\n"; + +open ( TODOFILE, "TODO.in"); +my $todo_header = do { local $/; }; +close (TODOFILE); +open (TODOFILE, "> TODO"); +print TODOFILE $todo_header; +print "Parsing..."; +while (my $entry = readdir(MYDIR)) { + next if (!($entry =~ /\.[ch]$/)); + print "$entry..."; + open(DAFILE, $entry) or die "Unable to open file"; + my $linenumber = 0; + while (my $line = ) { + $linenumber ++; + next if (!($line =~ /\/\* TODO: (.*)\*\//)); + print TODOFILE $entry.":".$linenumber.": ".$1."\n"; + } + close(DAFILE); +} +print "\n"; +closedir(MYDIR); -- cgit