Index: ossp-pkg/lmtp2nntp/00TODO RCS File: /v/ossp/cvs/ossp-pkg/lmtp2nntp/00TODO,v rcsdiff -q -kk '-r1.57' '-r1.58' -u '/v/ossp/cvs/ossp-pkg/lmtp2nntp/00TODO,v' 2>/dev/null --- 00TODO 2002/03/05 14:49:41 1.57 +++ 00TODO 2002/04/18 13:28:30 1.58 @@ -1,19 +1,11 @@ before release, check for - FIXME - - foo - strdup - check printf/log for consistent look'n'feel and uniqness - check printf/log for consistent usage of strerr()/XXX_error() - -------------------------------------------------------------------------------- - o split already too large lmtp2nntp_main.c into smaller chunks (3-4 files) - o move already too complex and intermixed option parsing and processing into - two parts (1: parsing, 2: processing) - o use dotconf library to provide a configuration file - o use var library to provide variable expansion everywhere - - -------------------------------------------------------------------------------- + should we resolv on startup only or for every access or using dns ttl add --define foo:bar option allowing the user to specify arbitrary variables which can then be used as ${option.define}[x] when you know x expanding to @@ -25,10 +17,6 @@ use sa_buffer (where sa_timeout is called) - option -U currently has to be specified before option -b in order to set the - owner/modes of Unix Domains sockets correctly. To fix this, the wholly - option handling has to be revamped. - on waiting for childs to finish: maximum number of seconds to wait at all and if childs still are running, kill them. This means we have to remember pid_t's. @@ -37,10 +25,6 @@ Proper cleanup when exiting through signals. - move code out of getopt()-loop - - split already too large lmtp2nntp.c source into smaller pieces (~ 10-30KB each only) - make msg.c a library with functions to add/ remove headers. add artifical delay for error respones to defeat DoS attacks. @@ -52,16 +36,8 @@ inn permissions require "read" for a STAT, so a "post w/o stat" delivery mode should be implemented. - handle duplicate headers, i.e. Reply-To: - **** DEVELOPMENT INFORMATION **** - Proposal for future URL-style logging option syntax - -L streamlog - -l syslog:[mask]//[localhost[:port]][/tag=value ...] with /tag=value i.e. facility=local0 - -l smtp:[mask]//[localhost[:port]][/tag=value ...] with /tag=value i.e. to=foo@example.com - -l file:[mask]//path/file - Debugging: $ ./.configure [wegen --with-dmalloc!] $ dmalloc -l dmalloc.log @@ -84,14 +60,7 @@ foreach $a (split(/\n/, $_)) { $n=$a; $n=~s/^(?:([^@<>()]+)@[^<>()]+|.*<([^@]+)@[^>]+?>.*|.*?([^@ <>()]+)@[^ <>()]+.*)$/$1$2$3/; print "$a->$n\n" };' - 1.) OSSP var needs autoconf environment - 2.) OSSP var needs RPM-style [] multivalue expansion - 3.) include OSSP var - 4.) splitting headers needs to extend known headers into multiple instances - 5.) joining headers needs to merge known headers into single instances, delete headers w/o value - 6.) add -f configfile option in a mini-library #comments, command[\svalue] - Result is: - duplicate Reply-To: headers are eleminated by 5.) + empty Subject: headers can be handled by -h Subject:${Subject:-empty} missing Message-Id: headers can be handeld by -h Message-Id:${Message-Id:-$_CreateMessageId} illegal Message-Id: two or more @ use -h ${Message-Id:s/^.*@.*@.*$/$_CreateMesssageId/} @@ -99,33 +68,3 @@ crossposting problem -h [Newsgroups:see perl example above and use feature 2.)\n] potential to merge post/header modes -h [Newsgroups:${_EnvelopeRCPT}\n] - **** DETAILS **** - - create an array with columns for "header" and every value, index is "header"; - - -h [pri]:[regex]:header:[val] - - foreach rule { - if (rule has regex) { - foreach header { - if (regex matches) { - createheader - substitutevalue - writeheader(overwrite_if_existing) - } - } - } - else { /* rule has no regex */ - createheader - substitutevalue - writeheader(overwrite_if_existing) - } - } - - - - - - - -