CHANGES
Last Modified: $Date$
2002/07/14
いくつかのコマンドの結果やエラーメールは管理者へも送るようにする
登録/削除についてのログ
メンバー以外からの投稿/コマンドメールなど
FML::Process::Utils
implement which_message_nl()
FML::Command
FML::Command::UserControl
FML::Command::User::confirm
FML::Process::Command Distribute.pm Kernel.pm
copy message and send it to $maintainer too
use reply_message*() with $msg_args to copy the message if needed where
$msg_args = { always_cc => $maintainer } or
$msg_args = { recipient => $maintinaer } pertinently.
FML::Command::UserControl
use message_nl( {add,del}_{ok,fail} ... ) as a reply
FML::Process::Kernel
disabled makefml NOT TO USE reply_message() now
2002/07/13
コマンドシンタックスの見直し
CGI もこれに合わせて修正
admin adduser
admin useradd
admin addadmin
admin adminadd
admin deluser
admin userdel
admin deladmin
admin admindel
FML::MTAControl
FML::MTAControl::Procmail
FML::Command::Admin::newml rmml.pm
newml 時に procmail の設定のテンプレートを作る。
rmml 時には消す。
FML::Process::Kernel
check defined($ml_name) in ml_* variable handlings
2002/07/12
procmailrc のサンプルもつくってみやう
newml/rmml コマンドが procmailrc のテンプレートを生成/削除する
ようにする
2002/07/11
FML::MTAControl::Qmail
remove ~fml::.qmail-* when the ML is removed.
2002/07/10
CPAN modules
import Unicode::Japanese 0.09
CPAN documents
catch up (2002::07::10)
2002/06/30-2002/07/30
ドキュメントクリーニング きゃんぺーん
2002/06/30
FML::Command::HTMLify
more check of input
FML::Process::ThreadTrack
fix ISA for ->speculate_max_id()
FML::Process::ConfViewer Spool.pm
fix the condition to show help
FML::Process::Error
$self -> $curproc
2002/06/28
FML::CGI::Admin::Menu
FML::Process::CGI::Kernel
separate execution of the command and the menu pop up.
Firstly execute run_cgi_main() and show tables after that.
CGI の情報更新をきちんとするために、CGI の関数呼びだしの基本構
造を修正
2002/06/27
バーチャルドメインサポートの修正、全面的オーバホール
FML::MTAControl
FML::Command::Admin::newml rmml.pm
FML::MTAControl::Postfix Qmail.pm
major overhaul
o reconstruct architecture
o bug fix virtual domain support
o sync w:::FML::Process overhaul to bug fix virtual domain support
FML::Process::Alias Command.pm ConfViewer.pm
Configure Distribute.pm
DocViewer Error.pm HTMLify.pm
Kernel Spool.pm Switch.pm
ThreadTrack Utils.pm
FML::Process::CGI::Kernel
major overhaul::delayed loading of *.cf files. The loading is done
within prepare() method now to handle virtual domains properly.
FML::Command::HTMLify
not need to validate ml existence
2002/06/25
clean up CGI ...
FML::CGI::Admin::List
scroll size is set by the length of maps
FML::Command::Admin::rmml
fix virtual domain handling. sync w:::newml logic
clean up (white spaces)
clean up. nuke _get_domain_info (not used)
2002/06/24
CGI の見栄えを大改良中
FML::Process::Utils
get_ml_list()::check $ml_home_prefix, bug fix default domain handling
bug fix ml_home_prefix() args, more defined() checks
FML::Config
FML::Process::Kernel
FML::Process::CGI::Kernel
more defined() checks and sanity check if could
FML::CGI::Admin::ML Menu.pm User.pm
FML::Process::CGI::Kernel
clean up menu, bug fix run_cgi_menu() args
2002/06/23
バーチャルドメインのサポート
bug fix
postfix および qmail は makefml newml を実行するだけで
バーチャルドメインの設定まで全自動
# 最初の一回はちょっとだけ MTA の設定が必要だけどね
FML::Command::Admin::newml
insert "$ml_domain $ml_domain" to the file "virtual" at the
first time since $ml_domain is one of $mydestination.
install a template for qmail::control::virtualdomains
2002/06/22
bug fix domain/virtual domain handling (specially in CGI)
FML::Process::CGI::Kernel
use $curproc->ml_XXX() as could as possible in new()
clean up table configuration:
define tables for function and
attributes
FML::Log
eval Log(warn ...) || print stderr it
FML::Restriction::Base
define navi_command as the same as command
FML::Config
defined() check more
FML::Command::Admin::newml
fix args of ml_home_xxx()
FML::CGI::Admin::ML
change get_ml_list() args
FML::CGI::Admin::Menu
classify the command in the navigation and main
FML::Process::Utils
define ml_name() method
ml_domain() returns the current process's domain not default one.
ml_home_prefix() and get_ml_list() behave more properly to reflect the
current situation.
fix ml_domain handling of rewrite_config_if_needed().
2002/06/21
CGI bug fixes
FML::Process::Utils
FML::Process::CGI::Kernel
move get_ml_list() and get_recipient_list()
from Process::CGI::Kernel to Process::Utils.
FML::CGI::Admin::Menu
FML::Command::Admin::newml
set up $ml_name dynamically
FML::Command::UserControl
ignore non-existed files, not croak()
IO::Adapter::File
close write handle and read handle after the write one.
FML::Command::UserControl
use IO::Adapter->get_next_key() not getline() for member list up
2002/06/01
major variable naming overhaul
relocating variable definitions in etc/src/
align convention: for example,
use_XXX
XXX_rules
XXX_dir
XXX_cache_dir
rename:
$recipient_limit -> $smtp_recipient_limit
$incoming_mail_dir -> $incoming_mail_cache_dir
$outgoing_mail_dir -> $outgoing_mail_cache_dir
$qmail_control_virtualdomains_file -> $qmail_virtualdomains_file
s/header_filter/article_header_filter/
s/header_rewrite/article_header_rewrite/
s/body_filter/article_body_filter/
s/subject_tag/article_subject_tag/
verify_XXX_* -> check_XXX
newly defined:
$use_digest_header_rewrite
removed:
$smtp_log_dir
$smtp_log_file
overhaul
variable naming convention
defined check
FNF-ify
fix argument declarations
FML::Command::Auth
permit_admin_member_maps() return 0 if not match
FML::Process::Kernel
temp_file_path() ensures temp file name uniqueness by counting the
number of times this function is called.
2002/05/31
FML::Header
add rewrite_date() for header rewrite Date::to X-Date:
2002/05/29
FML::Command::Admin::chaddr
bug fix::error_set() -> croak()
FML::Process::Switch
try to save the critical error message at $ml_home_prefix/ if could
2002/05/28
rename/reconstruct variables
clarify prefixes in caution.
define or rename sysconf_dir et.al. to $domain_XXX_config_dir
define $path_postmap
FML::Command::Admin::newml
mkdir @$init_config_dir_list
run "postmap virtual"
mainconf_dir -> domain_mail_config_dir
FML::Credential
$config->get_as_array_ref
FML::Command::Auth
implement permit_admin_member_maps()
2002/05/27
new variable naming convention
add caution
define terms on "mail" and "message"
change::_message_ -> _mail_
define $postfix_virtual_map_file
add $admin_member_maps to $member_maps
change attribute names:
o permit_members_only -> permit_member_maps
o check_command -> check_admin_member_password
FML::Mailer
FML::Process::Distribute
Mail::Delivery::{SMTP,Utils}
pass smtp log file handle to Mail::Delivery
FML::Process::Distribute
permit_members_only -> permit_member_maps
FML::Command::Admin::newml
FML::MTAControl
FML::MTAControl::{Postfix,Qmail}
set up virtual map if needed
FML::Process::Kernel
only user "fml" should read lock files.
define terms on "mail" and "message"::_message_ -> _mail_
permit_members_only -> permit_member_maps
FML::Process::Command
FML::Command::Auth
rearrange admin command authentication to sync w/ new variable names
FML::Process::Utils
implement is_default_domain()
2002/05/25
FML::Command::Admin::newml
fix $templ_files be ARRAY_REF
FML::MTAControl::Qmail
install .qmail-do:ma:-$ml for .qmail-do.ma.in-$ml
FML::Command::Admin::newml
FML::Process::Configure Utils.pm
at the first stage of makefml, care $config and rewrite it, if needed,
when we handle virtual domain.
implement $curproc->rewrite_config_if_needed() for it.
2002/05/24
variables
reconstruct $newml_command_*_template_files
FML::Config::Convert
implement convert_file(srcfile, dstfile, params)
FML::Log
print STDERR $msg if Log() fails
FML::MTAControl
FML::Command::Admin::newml
use FML::MTAControl ACAP
2002/05/23
FML::Header::Subject
add mime decode for subject
Mail::Message::Decode Encode.pm
FNF-ify, fix documents and @EXPORTS
2002/05/22
FML::Mailer
save smtp log at var/mail/outgoing/
2002/05/21
variables
define $error_cache_dir
define $newml_command_postfix_template_files
define $newml_command_qmail_template_files
define $incoming_message_dir
define $outgoing_message_dir
var/mail/{incoming,outgoing,queue}/
define $use_outgoing_message_cache = yes
define $outgoing_message_cache_size = 128
etc/aliases
enable auto error analyzer by default
FML::Process::Kernel
implement $curproc->open_outgoing_message_channel()
$mincoming_dir -> $incoming_message_dir
FML::Process::Distribute
use $curproc->open_outgoing_message_channel() not _smtplog to save
SMTP transaction logs.
FML::Command::Admin::newml
$newml_command_template_files ->
$newml_command_postfix_template_files
Mail::Bounce::Postfix19991231
validate input data
FML::Process::Error
implement a prototype to cache error data
2002/05/19
add/enable a prototype of libexe::fml::error (mead)
variables
define $use_error_analyzer
define $subscribe_command_auth_type
define $listinfo_base_dir
$command_prompot -> $command_prompt
$command_chaddr_type -> $chaddr_command_auth_type
$command_unsubscribe_type -> $unsubscribe_command_auth_type
FML::Process::Error
work if $use_error_analyzer is 'yes'
add hooks
finish() checks if this error message is effective or not.
fix typo and missing definition
FML::Process::Command
fix building logic of $command_args and $options to make admin
command work again.
fix $admin_prefix trap
rearrange structure
FNF-ify
clarify the current context is under confirmation or not.
ignorance of commands are dependent on this context.
nuke mode=special which is not used.
send back statistics and original message
FML::Command::DataCheck
fix parse_command_arguments() arguments
Mail::Message::MH
fix wrong last:\d+ counting logic
2002/05/18
FML::Process::Command
reconstruct command check logic (1)
Mail::Message
implement message_text_as_array_ref()
updated IM to im-141 + local patch (tats20020413.diff)
FML::Filter::BodyCheck
add reject_uuencode()
2002/05/17
FML::Process::Kernel
check whether $use_incoming_message_cache is yes
use $mincoming_cache_size as cache modulus
save incoming message at $ml_home_dir/var/mincoming/
File::CacheDir
update document on new() arguments
bug fix eval{} should do eval { use()&&new() }
new variables: (etc/)
use_incoming_message_cache = yes
incoming_message_cache_size = 128
2002/05/16
FML::Process::CGI::Kernel
pick up address_selected not address
Mail::Message::ToHTML
not reset @AnyDBM_File::ISA.
It is better for us to use the default @ISA
2002/05/13
FML::Process::Utils
implement
config_cf_filepath($ml, $domain)
is_config_cf_exist($ml, $domain)
FML::Command::HTMLify
validate if config.cf exists
2002/05/11
FML::Filter::ContentCheck
add Log deteled mimetype at only_plaintext() and typo fix
fix wrong log message (but is it correct fix ?).
FNF-ify
FML::Language::Japanese::Utils
_look_not_iso2022jp_string::add trivial check
Mail::Message
fix::parser() should handle header only message.
no no no, not reset $data_ptr unless body
nuke \s*$
2002/05/10
FML::Filter::ContentCheck
add function permit_mimetype() and reject_mimetype()
add function permit_rules() and reject_rules()
2002/04/30
FML::Command::Admin::check
add prototype for diagnostics
2002/04/28
FML::Process::Kernel
check $curproc->is_refused() more before action at each step
Mail::Message
fix comment.
add loop label.
FNF.
more checks by defined() and whether the content is not empty.
new() not need $InComingMessage here
remove module global variable $InComingMessage
check invalid multipart format
2002/04/27
FML::Process::Kernel
kern.not_member -> error.not_member
FML::Process::Kernel
disable debug message
Mail::Message
check more data by defined()
FML::Process::Kernel
modified to not using FileHandle::pipe()
add methods to prepare and clean up temporary files
implement parse_exception()
implement message_nl() to separete message converter into natural
language and message handling parts
FML::Process::CGI::Kernel Param.pm
convert exception syntax into the new style. See FNF
convert message to natual language if could
2002/04/26
FML::Process::Flow
run clean_up_tmpfiles() finally
FML::Process::Kernel
fix typo
define "permit_commands_for_stranger" (only define not implemented :)
FML::Process::Command
FML::Command::DataCheck
permit_commands_for_stranger works
variables
add rule permit_commands_for_stranger for $command_restrictions
2002/04/25
variables
rename variable::available_commands_for_xxx -> commands_for_xxx
FML::Command::Admin::htmlify
check $use_html_archive value before action
FML::MTAControl
implement get_aliases_as_hash_ref()
new() accepts { mta_type => ... } argument
FML::Process::Switch
FML::Process::Alias
new utility::fmlalias e.g. shows not only fml but all alias entries
Mail::Message
check defined($InComingMessage) before $body_size estimation
2002/04/24
FML::Header::Subject
replace subject to Subject
define $path_postconf
File::Utils
define append()
FML::Command::Admin::{newml, rmml}
use File::Utils and FML::MTAControl to share codes.
FML::Command::Admin::newml
check $ml_name duplication over all $alias_maps (postfix case)
FML::Filter::ContentCheck
bugfix object argument
2002/04/23
FML::Process::Distribute Kernel.pm
fix errro message and enable the rejected message forwarding
FML::Command::Admin::newml
check alias duplication
enable cgi
FML::Restriction::Base
define $ml_name_specified
FML::CGI::Admin::Menu
FML::Process::CGI::Kernel
FML::CGI::Admin::ML
define cgi_try_get_ml_name()
enabled newml and rmml on CGI.
2002/04/22
FML::Process::CGI::Kernel
sort ml list
FML::Command::HTMLify
bug fix subdirs sorting algorithm
Mail::Message::Spool
check value of $args->{ use_subdir }
FML::Article
error if the article already exists
2002/04/21
FML::Command::Admin::newml
install .htaccess only for the first time
Mail::Message::ToHTML
you can specify $ENV{MAX}
Mail::Message::ToHTML
for () { fork() && call htmlify_file() }
Mail::Message::ToHTML
htmlify_dir() accepts options::$has_fork and $max (for debug)
Mail::Message::ToHTML
sort years in monthly.index
bug fix the scan range for each subdir
FML::Command::HTMLify
sort -n subdirs list
2002/04/20
FML::Filter::BodyCheck
comment out "local($*) = 0;"
FML::Filter::TrafficMonitor
disable almost all codes imported from fml 4.0 once anyway
configure
add --with-warning
FML::Command::HTMLify
FML::Process::HTMLify
bug fix subdir checking
use FML::Command::HTMLify to share htmlify code between
fmlhtmlify and "makefml htmlify".
FML::Command::Admin::htmlify
remove $options
FML::Process::Configure
log raw error message
2002/04/19
FML::Process::Spool
check argument and show help if invalid
FML::Process::Switch
stop $ml_home_dir search when we can get it.
Mail::Message::ToHTML
bug fix::check the source file existence more severely
2002/04/18
Mail::Message::ToHTML
check $args->{ file } more severely in _update_relation()
FML::Process::Distribute
eval htmlify_file() to avoid unknown error ;)
FML::Process::Distribute
eval filtering
2002/04/16
FML::Process::Switch
fmlspool --srcdir not --dstdir
FML::Process::Spool
fix conversion algorithm
2002/04/15
FML::Process::Switch
fmlspool --srcdir not --dstdir
FML::Process::Spool
fix conversion algorithm
add a new utility "fmlspool"
add a new utility::fmlspool to handle spool directory
FML::Process::Utils
implement ml_home_dir()
FML::Process::Switch
enable fmlspool
FML::Article
implement subdirpath().
check $curproc->{'incoming_message'}->{ message } in new() data input.
FML::Process::Kernel
implement set_umask_as_public(), reset_umask() for umask control.
FML::Process::Distribute
umask and permission control for html archives
Mail::Message::ToHTML
BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File); }
FML::Process::HTMLify
consider spool:::may has subdir(s)
2002/04/14
Mail::Message::ToHTML
fix $subdir handling on month boundary
validate $curid ($self->{ _current_id})
validate or warn input into Jcode
set $code for Jcode if needed
CPAN modules
updated Jcode to 0.79
2002/04/13
FML::Command::User::unsubscribe
use FML::Confirm not via eval{ use ..}
FML::Process::Command
select the error message by the $xxx_restrictions error reason
Mail::Message
implement whole_message_as_string_ref()
FML::Process::Command
reply_message( OBJ(Mail::Message) ) when the message is rejected by
$command_restrictions.
FML::Process::Kernel
o reply_message() can handle OBJ(Mail::Message).
o save error reason at pcb area when the message is rejected by
xxx_restrictions.
2002/04/12
FML::Process::Distribute
send back mesg "we deny requests from system accounts"
FML::Process::Command
check by permit_command() before command execution ;)
send back mesg "we deny requests from system accounts"
FML::CGI::Calender
switched to the current style
2002/04/11
FML::Config
has_attribute() should look up %_fml_config_result
FML::Process::Command
accept commands, e.g. subscribe, allowed for not members
2002/04/10
2002/03 分クリーンアップおわり
FML::Filter クラスによるフィンルタリングを有効にする
FML::Filter:: のバグ修正
FML::Process::Distribute Kernel.pm
enable filtering.
implement access methods to control filtering.
o $curproc->refuse_further_processing()
o $curproc->is_refused()
2002/04/07
variables
define $primary_admin_member_password_map
rename $admin_member_passwd_maps -> $admin_member_password_maps
FML::Command::Admin::chaddr
chaddr over all maps
FML::Command::Admin::get
clean up variable names to be easy for your eyes
FML::Command::Admin::htmlify
doc::remove makefml description
add --dstdir=DIR
FNF-ify
FML::Command::Admin::list
show all maps in $xxx_maps
FML::Command::Admin::log
fix::add comments
use HTML::FromText class to espace metchars
FML::Process::Calender
clean up documents, comments
use $curproc not $self if appropriate
FML::Process::DocViewer
remove AUTOLOAD()
clean up
2002/04/06
remove "recipients" file from default $recipient_maps
Mail::Message::Spool
define dirpath()
FML::Article
mkdir subdir if needed
2002/04/05
spool (記事のスプール)の階層化構造をオプションにする
変数 $use_spool_subdir を創設する
2002/04/03
clean up, audit campaign
春だからお掃除しましょう(意味不明)
2002/04/01
実際に構築しつつテストしてみる。
configure はもっといろいろチェックするべし
不便なものを実装する。e.g. makefml list
more check and expansion by configure
we should use values speculated by configure if could.
default_ml_home_prefix = @mlspooldir@
FML::Command::Admin::newml
not install CVS
expand default_domain by config.status
FML::Command::UserControl
FML::Command::Admin::list
enable "admin list" command
admin list $ml {members,actives,recipients}
FML::Process::Switch
warn() if $ml_name not specified
2002/03/31
"makefml newml" set up ~fml/fml/listinfo/$domain/$ml/
MLの作成時に WWW ページを用意する( listinfo を作る)。
FML::Command::Admin::newml
variables
+ remove $message_message_dir
+ change $message_template_dir
+ change $html_archive_dir
+ add $listinfo_dir
階層化構造を取れるようにする
HTML 化記事を置くディレクトリ
スプールディレクトリ
FML::Process::Kernel
$message_message_dir -> $message_template_dir
FML::Command::Admin::htmlify
FML::Process::{Distribute,HTMLify}
Mail::Message::ToHTML
Mail::HTML::Lite
rename class::Mail::HTML::Lite -> Mail::Message::ToHTML
change .ht* database names
FML::Article
Mail::Message::Spool
Mail::ThreadTrack
Mail::ThreadTrack::DB Print.pm
Mail::ThreadTrack::Print::HTML Text.pm
use Mail::Message::Spool::filepath() for the article file path.
use $self->filepath() which is based on Mail::Message::Spool
Mail::Message::Spool::spool arg changes::$spool_dir -> $base_dir
Mail::HTML::Lite
rename message_file*() -> html_file*()
html file path is YYYYMM/msg$id.html by default
2002/03/30
FML::Article
FML::Command::SendFile
FML::Process::Distribute
FML::Article::filepath() determines the article file path.
admin {delete,unlink} -> admin file $subcommand
コマンド名が衝突する可能性があるため
admin コマンドのシンタックスの拡張をはじめる。
2002/03/25
enable admin {delete,unlink}
FML::Restriction::Base
define file
FML::Command::DirUtils
fix to use FML::Restriction::Base not CGI
2002/03/24
FML::Restriction::Base
define directory regexp as [-a-zA-Z0-9]+
permit . in "user" part in e.g. "address"
variables
define $path_ls for admin {dir,ls}
enhance dommands
enable admin {ls,dir,delete,unlink}
2002/03/23
FML::Command::Auth
admin コマンドのパスワード認証を有効にする
FML::Command
implement rewrite_prompt(). It is used to hide password et. al.
FML::Process::Command
clean up
use rewrite_prompt() by FML::Command to hide admin password.
variables
define $admin_member_passwd_maps.
admin password
admin pass
new modules from CPAN
import Crypt-UnixCrypt-1.0, perl-only implementation of the
crypt(3).
2002/03/21
コマンドの認証について改良
FML::Credential
reconstruct is*member() functions
implement primitive is_privileged_member()
FML::Process::Command
clean up :::clarify the logic:
o valid command syntax
o command mode for a user, admin and stranger
o add prototype of admin command auth
variable:
define $admin_command_restrictions
FML::Command::Auth
add prototype of admin command auth
2002/03/20
CGI の再構成: clean up's
loader
prepare a hook to inform some hints via $main_cf
FML::Process::Utils
implement hints()
FML::Command::Admin::newml
setup admin::{thread,config,menu}.cgi based on libexec::loader
and hints
FML::Config::Convert
replace __hints_for_fml_process__
FML::Process::Switch
enable config.cgi , remove makefml.cgi
FML::CGI::ThreadTrack
vertical align of menus
FML::Process::CGI::Kernel
change layout in table a little.
define run_cgi_title() and run_cgi_help()
add options bar to switch the language (dummy yet :-)
FML::CGI::Admin::Menu
remove run_cgi_help() once
2002/03/19
CGI の再構成: FML::CGI と FML::Command 間のトランポリン機構
コマンド依存の機能を FML::Command クラスへ委任する
FML::Process::CGI::Param
accpet empty value even if it not matches filter:)
FML::Command::Admin::subscribe unsubscribe.pm
implement cgi_menu() to show command specific menu in CGI screen
FML::CGI::Admin::Menu
FML::Process::CGI::Kernel
o prepend cgi_ or run_cgi to function name.
o implement trampoline mechanism using FML::Command::class.
o change::pop_menu -> scrolling_list
FML::Command::UserControl
define FML::Command::UserControl class to share user control codes.
modified Admin::{subscribe,unsubscribe} commands to use it.
new commands
これらの admin コマンドが新たに使えるようになりました。
admin addadmin
admin addpriv
admin byeadmin
admin byepriv
admin log
new variables
$primary_admin_member_map
$admin_member_maps
2002/03/18
CGI の再構成をはじめる
FML::CGI::*
FML::Process::CGI::*
reconstruct CGI around structure phase 1:
o table not frame based menu support (similar style to www.netbsd.org)
o prepare method for each location in the screen.
for example,
+ run_cgi_main() to show main menu at the center in the screen.
+ run_cgi_navigator() to show navigation bar at the left.
o longjmp() by eval::croak when we encounter insecure conditions.
FML::CGI::Admin::Menu
FML::Process::CGI::Kernel
cosmetics
FNF
define cgi_execute_command() and try_get_address() into
FML::Process::CGI::Kernel and remove them from FML::CGI::Admin::Menu
FML::Process::Utils
define ml_domain() but same as default_domain() yet
new variables (for CGI)
$cgi_main_menu_color
$cgi_navigation_bar_color
2002/03/17
chaddr コマンドが動くようになった!
chaddr
admin chaddr
makefml chaddr
この3つ全部です。
FML::Command::User::chaddr
works again!
if either old or new addresses in chaddr arguments is an ML member,
try to confirm this request irrespective of "From:" address.
FML::Command::Admin::subscribe unsubscribe.pm
FML::Command::User::chaddr confirm.pm
change $command_args argument:
$command_args->{ adddress } => $command_args->{ command_data }
FML::Process::Kernel
reply_message::append \n to message if \n$ is missing
reconstruct message queue subsystem internal.
we can handle output styles for message queue input properly.
メッセージキューイングシステム再構築
受信者ベースでのまとめあげ処理などを正しく処理する
XXX これで chaddr コマンドが書けます。
2002/03/16
FML::Process::Kernel
new message queue handling. sync with reply-message branch
clean up logic to handle messages queue.
for $recipient ( queue ) {
apply the following rules for messages returned to
specified $recipient.
1. pick up text messages and put them into the first part.
2. append non text messages
}
2002/03/06
variables
define directory for cgi and HTML article archive
define $newml_command_template_files
define $available_commands_for_admin_cgi
FML::Config
implement get_as_array_ref()
FML::Process::Switch
makefml --force $command $ml ...
2002/02/24
update /etc: define the following variables
$fml_owner $fml_group $syscon_dir $mailconf_dir
$mail_aliases_file
FML::Process::Utils
define fml_owner(), fml_group() and mail_aliases().
FML::Config::Convert
replace $fml_owner and $ml_home_dir.
FML::Config
set(key, value) and update() informs FML::Config to expand variables.
FML::Command::Admin::newml
install aliases when makefml newml runs.
2002/02/23
FML::Command::SendFile
FML::Command::Admin::get
fix filename in mime header
FML::Process::Command and etc/
validate if the requested admin command is permited or not.
define $available_commands_for_privileged_user
rename $available_commands -> $available_commands_for_user
2002/02/20
File::Sequence
add function _search_max_id_from_top()
clean up commands
多くのコマンドを動くようにした(微修正だが:-)。
update $available_commands_for_stranger and $available_commands
fix path::$message_template_dir -> $ml_home_dir
o $guide_file
o $help_file
o $objective_file
o $summary_file
FML::Process::Kernel
add Reply-To::into our reply message
2002/02/19
FML::Command
remove require_lock() due to obsolete
2002/02/18
clean up FML::Command::{User,Admin}::*
remove FML::Command::Utils and ErroStatus
we should not inherit anything as could as possible.
enhance xxx_restrictions:
enable "permit_anyone" can be used in {post,command}_restrictions.
2002/02/17
FML::Config
implement hook extension. For example,
$config->is_hook_defined( 'START_HOOK' );
$config->get_hook( 'START_HOOK' );
FML::Process::Command ConfViewer Configure Distribute
DocViewer HTMLify ThreadTrack
implement several hooks
import HTML-Template-2.5 from CPAN
change variables
$confirm_keyword -> $confirm_command_prefix
add $admin_command_prefix
FML::Command::Admin::htmlify
makefml htmlify elena --srcdir=.. --outdir=...
Mail::Delivery::ESMTP
fix argument
admin コマンドを動くようにする
まだ認証してないけど :)
FML::Command::User::confirm
remove ErrorStatus, FML::Command::Utils;
define new()
call User::Command::XXX without lock since already locked now.
FML::Config
fix return value by FETCH() to be without \s*$
FML::Command
change use() and new().
not use ErrorStatus.
check $command_args->{ override_need_no_lock } to control lock.
FML::Process::Distribute
bug fix definitions on hooks
FML::Process::Kernel
fix file name in searching message template
2002/02/13
define access method need_lock().
each command module determins whether it needs lock or not.
FML::Command と FML::Command::* 以下の変更いろいろ
各コマンドは各自 need_lock() というアクセスメソッドで
ロックが必要かどうかを FML::Command に教えるべし
XXX 拡張を考慮の上、こうしてみた
FML::Command::SendFile
remove import of ErrorStatus
rename module::TinyScheduler -> Calender::Lite
FML::Process::Switch
FML::CGI::Scheduler -> FML::CGI::Calender
FML::Process::Scheduler -> FML::Process::Calender
2002/02/11
create FML::Restriction::Command class
FML::Command::SendFile
FML::Command::User::{guide,help,deny,objective}
send back file file in $ml_home_dir if found.
return the default message if not found.
"guide", "help", "objective" commands use this logic.
ユーザ用のコマンドの送り返し方を変更
1. (4.0 風にいえば) $DIR の help ファイルを送り返す
2. help ファイルがないなら、デフォルトのメッセージを使う
1. は 4.0 との互換性のためで、
fml-devel では 2. がデフォルト( help ファイルは作らない )
2002/02/04
FML::Process::ThreadTrack
determine the max sequence id by considering last mofieid time
among the sequence file and thread databases.
Mail::ThreadTrack::DB
implement db_last_modified()
It return the last modified time of "date" DB in dateabase as
unix time.
2002/02/03
main.cf.in
$ml_home_prefix -> $default_ml_home_prefix
FML::Command::Admin::newml
FML::Process::Utils
ml_home_prefix() can recognize virtual domain.
modified to use it.
we should not use $curproc->{ main_cf } directrly in modules out of FML::Process::
we implement the following methods in FML::Process::Utils and use them.
o $curproc->executable_prefix()
o $curproc->template_files_dir_for_newml()
2002/02/02
FML::Process::Utils
define access methods::default_domain(), ml_home_prefix()
(prototype)
FML::Process::Switch
FML::Process::CGI::Kernel
use FML::Process::Utils::__ml_home_prefix_from_main_cf() to
get $ml_home_prefix.
TinyScheduler
Mail::ThreadTrack::DB
use File::Spec
2002/02/01
remove $ENV{debug} based toggle flag
2002/01/27
FML::Command::Admin::newml
"makefml newml" virtual domain support. For exmaple,
% makefml newml elena@nuinui.net
The ml_home_dir is speculated from $virtual_maps in main.cf.
IO::Adapter clean up campaign ?:)
Mail::Delivery::SMTP
IO::Adapter
IO::Adapter::{Array,DBI,File,MySQL}
clarify IO::Adapter definition and clean up get_XXX() functions.
remove get_member(), get_active() and get_recipient()
define get_next_key() and get_next_value() and clarify thier definitions.
add IMPLEMENTATION.jp
FML::Credential
IO::Adapter
IO::Adapter::DBI
clarify IO::Adapter::find() usage.
find() returns "key value" by default and "key" if requested.
add want option e.g. find(key, { want => $what } ).
File::Sequence
search_max_id() searches all keys if full_search option specified
FML::Command::SendFile
clarify function acl, arguments more
FML::Command::User::get
clarify function arguments more
2002/01/20
/etc/fml/main.cf
define $virtual_maps
FML::Process::Utils
implement get_virtual_maps()
FML::Process::Kernel
fix module loading of Mail::Delivery::Queue
FML::Command
FML::Command::SendFile
fixed to call up error to FML::Process::Command layer
FML::Process::Command
more comments, log.
fix message handling to use object to get command string returned by
find_first_plaintext_message().
2002/01/16
change Mail::Message naming convention.
FML::Article Parse
FML::Filter::BodyCheck HeaderCheck TrafficMonitor
FML::Process::Command Distribute Kernel
Mail::Bounce Message
Mail::Bounce::DSN Exim GOO Postfix19991231 SimpleMatch
Mail::Delivery::SMTP
Mail::HTML::Lite
Mail::ThreadTrack::Analyze HeaderRewrite
public -> private:
o head_message
o last_message
o next_message
o prev_message
prefix change:
o rfc822_message_ -> whole_message_
o get_first_plaintext_message() -> find_first_plaintext_message()
o get_encoding_mechanism() -> encoding_mechanism()
o get_data_type() -> data_type()
o get_data_type_list() -> data_type_list()
renamed:
o get_offset() - >offset_pair()
o header_in_body_part() -> message_fields()
o data_in_body_part() -> message_text()
where we use RFC822 flabour naming convention.
rfc822 says "message = fields + text" and rfc2047 says "message" as
defined in RFC 822, with all header fields optional.
2002/01/14
Mail::HTML::Lite
define default value.
delayed loading by eval q{ use .. }.
validate defined( $db->{ _thread_list }->{ $id } ).
_head_thread()::fix head_thread search algorithm.
rename __search_default_next_thread_id() to
__search_default_next_id_in_thread().
__sort_yyyymm()::validate value is not null.
2002/01/13, 01/12, ...
final clean up campaign in 2001
クリーニングキャンペーン 2001 final はいまだに続いているぞ;-)
Mail::Message
FML::parse
rfc822_message_FUNCTION()
メッセージ全体( Mail::Message の chain 全体)に対する
メソッドには rfc822_message_ を頭につけるように名前をあわせる
File::SimpleLock
Mail::Delivery::Queue
use Fcntl qw(:DEFAULT :flock), remove LOCK_XX() definitions.
2001/12/25
Mail::HTML::Lite
bug fix::_print_li_filename() check is too restricted
2001/12/22,23,24,25
final clean up campaign in 2001
クリーニングキャンペーン 2001 ファイナル:)
FNF-ify
コメントおよびドキュメントの更新
空白の削除 \s*$
使っていないので削除したモジュール
FML::Messages
FML::MIME
FML::Language::Japanese::Subject
FML::MIME は Mail::Message::Decode および
Mail::Message::Encode の2つにわかれたよ
renamed
FML::Checksum -> Mail::Message::Checksum
2001/12/22
FML::Process::Kernel
remove FML::Messages
TinyScheduler
define get_mode() for symmetric definition.
2001/12/18
記事の HTML 化を可能にする(デフォルトで ON)
use_html_archive = yes (デフォルト)
~fml/public_html/mlarchive/ML名/
FML::Process::Kernel
define $fml_owner_home_dir by process $uid
FML::Process::Distribute
htlmify article
2001/12/16
FML::Messages
IO::Adapter::LDAP
Mail::Message::Date
Mail::Message::Language::Japanese::Subject
nuke "require Exporter, which is not needed
INSTALL.sh
warn you should update loader if needed
loader.in
use $fmlconfdir not $sysconfdir
use IO::File not FileHandle
2001/12/11
FML::Command::Admin::newml
ensure installed file mode to be 0644
TinyScheduler
speculate $user by $$ unless defined $user
./configure の拡張
メッセージをいろいろつけたす
--with-fml-group=$GROUP
--with-fmlconfdir=$prefix/etc/fml
2001/12/09
インストーラのバグをとる
makefml の引数チェックのバグを修正
fml/etc/ 以下の構成を変更する
makefml newml は config.cf 生成時にML名の変更をする
2001/12/08
TinyScheduler
more proper error messages
FML::Process::Configure
fix error handling, define finish() to avoid loading error
FML::Process::DocViewer
add path for perl executatbles e.g. ::usr::local::bin
2001/11/27
FML::Log
Tie::JournaledDir
FML::Date -> Mail::Message::Date
Mail::Message::Date
remove MTI.. message
update comments
clean up
FNF-ify
Mail::ThreadTrack::Analyze
run prepare_history_info($msg) if $self->{ _is_rewrite_header }
configure
@sysconfdir@ -> @sysconfdir@/fml
modify message
FML::Process::Switch
modified not to use Standalone
loader has Standalone by itself now.
config.sh.in
etc/main.cf.in
@sysconfdir@ -> @sysconfdir@::fml
FML::Process::Switch
libexec/loader.in
modified not to use Standalone
loader has Standalone by itself now.
2001/11/26
FML::Process::Kernel
bug fix missing mkdir() argument
FML::Process::Distribute
Mail::ThreadTrack
Mail::ThreadTrack::Analyze
toggle header rewriting (subject) to add thread id. off by default
config.cf
define $use_thread_subject_tag to toggle header rewrite
2001/11/25
more tainted safe
(but needs more consideration, may be use of FML::Restriction class)
TinyScheduler
FML::Process::ConfViewer, FML::Process::Scheduler
FML::Filter::BodyCheck
validate get_first_plaintext_message() return value
libexec/loader.in
we should not use @INC derived from $0
reset PATH in the early stage
FML::Process::*
implement help() method
enable --help for all command line programs
verify_request() checks @ARGV and show help() if needed
FML::Process::Switch
enable distribute and command
check whether getopt() options are given or not.
enable --help for all command line programs
xxx.cgi SHOULD NOT ACCPET the same options as command line program xxx
does.
FML::Process::Kernel
trap --help in new() to show and exit asap
FML::Process::ConfViewer
fmlconf and makefml are separete now
FML::Process::CGI::Kernel
change defualt target to _top
FML::Process::CGI::Param
FML::Restriction
reconstructured safe parameter definitions
2001/11/21
FML::Process::Switch
fmlsch -h to show help
FML::Process::Scheduler
TinyScheduler
clean up fmlsch
FNF-ify
handle options by getopt() in Process::Scheduler not TinySchedule
make "fmlsch help" work
fix entry duplication bug in parser
print_specific_month() can handle (month, year) pair
define set_mode()
use env var BROWSER ("w3m" by default)
2001/11/20
File::Sequence
implement search_max_id() in hash key
more debug
Mail::ThreadTrack::DB
db_hash( $type ) to return hash reference for $type
Mail::ThreadTrack::HeaderRewrite
validate variables
FML::Process::ThreadTrack
update database for latest not-yet-analyzed articles.
2001/11/19
Mail::ThreadTrack
implement set_fd(), get_fd()
implemente set_order()
FML::Process::ThreadTrack
Mail::ThreadTrack::Print
split functions for list and summary.
"list" shows thread summary but "summary" shows thread summary +
article summary.
enhance fmlthread to provide CUI, oh this is useful !
Mail::ThreadTrack::Print
enable --reverse for summary, list command
check reverse_order value ;-)
Mail::ThreadTrack::Print::Message
check value of header fields, which is undefined in some cases
Mail::ThreadTrack::Print::Text
implement show_articles_in_thread()
FML::CGI::ThreadTrack
summary listing on CGI is normal order by default
2001/11/18
FML::Article
implement speculate_max_id()
FML::Process::ThreadTrack
change max_id speculation strategy:
1. check the max_id is given or not, use it if given
2. try max_id() of FML::Article;
3. speculate_max_id($spool_dir) in FML::Article
fml/etc/paths.cf
./configure が paths.cf を作る。
2001/11/17
FML::Process::HTMLify
Mail::HTML::Lite
disable debug code, enable it when $ENV{debug} is defined
FML::CGI::Configure ThreadTrack.pm
FML::Process::Switch
Mail::ThreadTrack
Mail::ThreadTrack::Print::HTML
change default target to _top
use $msg_base_url to show link to article
2001/11/16
Mail::ThreadTrack
new()::save $args as _saved_args in $self
Mail::ThreadTrack::DB
fix _status but in unpolite way. XXX fix it !
2001/11/13
CGI 新スタイルへ変更他、
Problem 追跡システム、スケジューラ、makefml CGI 版 (プロトタイプ)
すべて動くようにした
FML::Process::CGI::Kernel
some cgi may need no ml_name
FML::Process::CGI::Param
fix address regexp, define $command, modify error return way
FML::Process::CGI::Kernel
move get_ml_list() to FML::Process::CGI::Kernel
from FML::CGI::ThreadTrack
2001/11/12
use autoconf
いろいろ改造する。そういうわけで
# useradd fml
# ./configure; make install
というインストール方式になりました。
loader
loader generated from loader.in (autoconf)
Standalone
expand ${variable}
FML::CGI::ThreadTrack
fix typo, $myname resolved by $curproc->myname()
FML::Process::Switch
fix to introduce $config_dir (etc::fml) from main.cf
default_config -> default_config_cf
FML::CGI::ThreadTrack
FML::Process::CGI::Kernel Param.pm
move "function to get paramlist" to FML::Process::CGI::Param module
implement safe_pramlist\d+_\S+() via AUTOLOAD()
2001/11/11
Mail::ThreadTrack::Print::Sort
change cost evaluation logic (numeric now)
Mail::ThreadTrack::Print
Mail::ThreadTrack::Print::HTML Message.pm
clean up summary() mode for both text and html modes.
print() method knows what should it do for text::html mode.
Mail::ThreadTrack::HeaderRewrite
defined $rh->{ _articles }->{ $thread_id }
Mail::ThreadTrack::Print
Mail::ThreadTrack::Print::HTML Text.pm
dynamic binding accoding to mode::text or html
Mail::ThreadTrack
change article_summary_lines to 5 by default
FML::Process::CGI::Param
define article_id, method -> action
FML::Process::CGI::Kernel
header( -charset => $charset)
FML::CGI::ThreadTrack
modified to fit FML::Process::CGI structure.
enable 'close' operation
reset button
FML::Process::CGI::Kernel
workaround::header( -target => "ResultsWindow" ) anyway
FML::Process::CGI::Param
allow action =~ ::^[-a-z_]+$::
FML::CGI::ThreadTrack
Mail::ThreadTrack
Mail::ThreadTrack::Print
Mail::ThreadTrack::Print::HTML
enable "show" and "change_status" to work
FML::CGI::ThreadTrack
FML::Process::{Distribute,Switch,ThreadTrack}
Mail::ThreadTrack
Mail::ThreadTrack::Print::HTML
ThreadTrack switches acconding to myname ($0).
threadview is view only and cannot change status.
2001/11/10
loader
FML::Process::Switch
bug fix::format $reason
FML::Process::CGI::Kernel
remove makefml issue.
modify run() which now executes:
$curproc->html_start($args);
$curproc->run_cgi($args);
$curproc->html_end($args);
2001/11/08
Mail::Message::Language::Japanese::Subject
nuke new(), not used
Mail::ThreadTrack
restructure hierarchy
clean up inheritence for further refactoring
modify method names
clean up
nuke some "*cost*" indicator codes
closed -> close for some cases
Mail::ThreadTrack::Analyze
avoid duplicated commit to articles DB { thread_id => [ id1 id2 ... ] }
Mail::ThreadTrack::Print::Message
ignore ^= line in message summary
Mail::Message::Date
validate $in $shift_m
Mail::ThreadTrack
list_up_thread_id()::remove db_*() operation
Mail::ThreadTrack::Analyze
speculate date from header's Date:
loader
least error infomation by default OR raw $@ if debug
FML::Process::Switch
least error infomation by default OR raw $@ if debug
Mail::ThreadTrack::Print
bug fix trap pattern of _valid_buf() and
_delete_subject_tag_like_string()
FML::Process::CGI
use FML::Process::CGI::{Kernel,Param}
FML::Command
defined() check for $command_args
FML::Process::Switch
modify error message
2001/11/07
FML::Process::Switch ThreadTrack.pm
Mail::ThreadTrack
Mail::ThreadTrack::Print
enable fmlthread options:
--article_id_max=\d+ to override ::var::spool::ml::$ml::seq
--reverse to reverse time order in showing "review"
Mail::ThreadTrack::DB
remove not used variables
FML::Process::Switch ThreadTrack.pm
Mail::ThreadTrack::Analyze
fmlthread -f filterlist ...
Mail::ThreadTrack::DB
show ... when processing
Mail::ThreadTrack::Print
check -f article_file
FML::Process::Utils
command_line_argv_find()
FML::Process::ThreadTrack
fmlthread review ML RANGE srcdir=::some::where
XXX srcdir=\S+ overwrites config->{ spool_dir } variable
Mail::ThreadTrack
define add_filter() method
FML::Process::Switch ThreadTrack.pm
we should use long line options since we support it :)
o define --spool_dir for fmlthread. for example:
% fmlthread db_clear fml-help
% fmlthread --spool_dir=::some::where -f ::tmp::filter db_rebuild fml-help
% fmlthread --spool_dir=::some::where review fml-help last:100
2001/11/06
スレッド review と再生成をリモートでできるようにするとちょっと便利
fmlthread db_clear fml-help
fmlthread --spool_dir=/some/where -f /tmp/filter db_rebuild fml-help
fmlthread --spool_dir=/some/where review fml-help last:100
2001/11/05
fmlthread review
review() mode to show summary for articles in each thread
FML::Process::Utils
implement command_line_options()
fmlhtmlify [-I dir] src_dir dst_dir
new utility for convenience
Affected Files:
INSTALL.sh
fml/bin/fmlhtmlify
FML::Process::Switch
FML::Process::HTMLify
2001/11/04
プログラム全域で ticket -> thread
FML::Process::Switch
eval FML::Process::Flow::ProcessStart($obj, $args);
and trap error.
If error traped and $obj has help() method, run $obj->help().
also upcall the $@ by croak($@)
FML::Process::
save $args at $curproc->{ __parent_args }
$curproc provides convenient functions FML::Process::Utils has.
fml_version()
myname()
command_line_raw_argv()
command_line_argv()
article_id_max()
my $myname = $curproc->myname();
my $argv = $curproc->command_line_argv();
FML::Process::ThreadTrack
enable db_clear, db_mkdb, summary, help
Mail::ThreadTrack
implement exist() and close()
implemente db_clear(), db_mkdb()
2001/11/03
remove fmlticket, create fmlthread
FML::Process:: を Mail::ThreadTrack ベースに切替える
FML::Process::TicketSystem は削除し、
FML::Process::ThreadTrack が作られた。
Mail::ThreadTrack を CVS へ入れる。
これはスレッドを追跡するためのツールであり、
call tracking system の概念のごく一部をなしているといってよい
Mail::ThreadTrack
change new() parameters
nuke pcb
$config->{ db_type } = 'AnyDBM_File'; by default
$self->{ _index_db } = $db_base_dir::"index"
moved set_status() into this module
Mail::ThreadTrack::Analyze
nuke pcb
bug fix $article_id handling
Log() to $self->log()
assign()::clean up function names and arguments
define {get,set}_thread_id() and modified to use them
add commentes for FNF style
clarify assign() and rewrite_header() roles
define {set,get}_thread_status() and modified to use them
message-id is (RFC822), we use this format also in DB.
correct handling of $config->{ thread_subject_tag_location }
remove _address_clean_up(), which is not used now.
remove set_status()
Mail::ThreadTrack::HeaderRewrite
prepare_history_info()
Mail::ThreadTrack::DB
make index database in db_base_dir not db_dir
Mail::ThreadTrack::Print
build-in decode_mime_string()
tune up alignment in printing
EUC-ify output
define STR2EUC() for convenience
2001/10/29
Mail::Message
_get_mime_header() checks offset boundary
return default pair if overrun.
Mail::HTML::Lite
nuke $ENV{DEBUG}, check input data more
rename key:
prev_thread -> prev_thread_id
next_thread -> next_thread_id
count up $self->{ _num_attachment } for child process
attachment file name $id.$count.html
parent passes the id to child (processing attachment)
ignore type if type is ::^multipart::
check $idp pattern
2001/10/28
Mail::HTML::Lite
change method to speculate thread link
rename functions
implement _create_temporary_filename()
reorder $type check
consider case of text::* with encoded content
save content to file once and rewrite it by _rewrite_html_file()
consider encoding style of quoted-printable, 7bit also
_format_safe_header() and print it in raw mode to enable
tag use.
define _sprintf_safe_str() and __sprintf_safe_str() for convenience
define _separete_url() to help incomplete regexp of
HTML::FromText::text2html()
2001/10/27
Mail::HTML::Lite
use _PRINT_DEBUG(), define _print_safe_{str,buf}() to be easy for eyes
_print() -> _print_raw_str()
Mail::Message
oops, should be s::::::mi to trap encodinge
FML::Filter::BodyCheck
Mail::Message
Mail::Bounce::DSN
Mail::HTML::Lite
change method: data() -> data_in_body_part()
2001/10/22
FML::Ticket::System (clean up campaign)
remove obsolete functions:_quote_space(), _dequote_space(), AUTOLOAD()
remove not used _pcb_[sg]et_id()
$self->_pcb_set_id($curproc, $id) -> $pcb->set('article', 'id', $id)
Mail::HTML::Lite
add (X-ML-Name X-Mail-Count X-Sequence) into @header_field (default
header to show)
defined() check before calling Jcode::XXX()
FML::Command::Admin::htmlify
accept command line option::srcdir=$srcdir
2001/10/21
makefml htmlify $ml_name outdir=$out_dir
スプールを HTML 化するコマンド
もちろん Mail::HTML::Lite を利用する。
# fml 4 の spool2html に対応するものといえよう
Mail::HTML::Lite
月ごとの ID インデックスも作る (TABLE)。
make monthly index always
monthly_index.html
month.YYYYMM.html
prepare top level entrance functions:
htmlify_file() for file
htmlify_dir() for directory
clean up codes, documents
implement _print_index_{begin,end}() and modified to use them
sort location of function definition
rename functin name:
_print_attachment -> _print_inline_object
_raw_text_print -> _text_print_by_raw_mode
oops, fix untie() operation to be ensured
check target html is already processed or not
bug fix _address_clean_up() syntax check
check already processed or not
you can know it by $self->is_ignore($id) method.
move a lot of debug code to "if $debug > 3" in cache_message_info()
2001/10/20
Mail::HTML::Lite
メールを HTML 化するモジュール
mhonarc のように凝ってはいないが必要十分な最低限の機能は持つ
(だから Lite なんだよん)
cache information in .ht_hml_* in html article directory
rewrite links using these data among articles needed to rewrite.
links contains prev::next by ID (article ID) and prev::next by Thread.
bug fix target lists to update, modified to use the result by
evaluation_relation()
clean up debug code
more debug information
show and information in if could
new() takes charset as argument
change _decode_mime_string() to method
modify ifdef in_chaset_to_code() to be more suitable
we can make index.html and thread.html
Mail::HTML::Lite::new() accepts
{ db_type => "DB_TYPE", attachment => 0::1 }
change html_begin argument::($wh, { message => $msg });
we can specify title in
several minior changes
bug fix::_address_clean_up() should check return value, which is
address or not more rigolously.
bug fix::check parent::child (attachment) process or not
more and more debug info
Mail::Message
bug fix::$InComingMessage should not local scope. modify it to
SCALAR REF
bug fix::data_in_body_part() returns whole data not the first
512 bytes. if $size is specified as argument, return the first
$size bytes.
feature::get_data_type_list() returns ARRAY of xxx::yyy by
default for other method use. If under $debug mdoe, it shows
verbose output.
2001/10/19
import HTML::FromText 1.005
Mail::Bounce
Mail::Message::get_data_type_list() is changed. To sync with it,
use $msg->get_data_type_list( { debug => 1 } ) for debug.
2001/10/18
Tie::JournaledDir
change default unit to "day" not number (unix time).
2001/10/17
variables
add $confirm_keyword to $available_commands_for_stranger
add $available_commands_for_stranger to $available_commands
FML::Command
modified FML::Command uses get_attribute() in FML::Command::Attribute
FML::Command::Attribute
renamed FML::Command::ACL -> FML::Command::Attribute.pm
FML::Command::SendFile
support MH style arg::first, last, cur, first:\d+ and last:\d+
FML::Command::User::bye
fix typo
File::Sequence
implemente get_id() method to return the latest article id
update document
2001/10/15
フィルタリングを有効にする
FML::Filter::BodyCheck
FML::Filter::HeaderCheck.pm
define @default_rules and use it if rules not specified
rules() method to overwrite filtering rules
variables
define the following variables for filtering (FML::Filter)
body_cksum_cache_dir
body_filter_rules
body_loop_check_rules
header_filter_rules
use_body_filter
use_body_loop_check
use_header_filter
2001/10/14
FML::Process::Kernel
bug fix::we should pay attention to implisit $_ use
FML::Process::Configure
sync style w:::Process::Command
FML::Process::Command
make argument vector from $command
relocate _parse_command_options()
implemt _get_command_name()
clean up
fix typo
FML::Command::Admin::get
prototype to use FML::Command::SendFile
FML::Command
FML::Command::*
FML::Process::Configure
FML::Process::Command
$optargs -> $command_args
2001/10/13
FML::Process::Command
pass $comname in $optargs
FML::Command::SendFile
fix duplicatoin for $charset
FML::Config
avoid infinite loop
FML::Command::SendFile is added
This module provides basic file sending functions
implement command: get help summary guide
FML::Command::SendFile based command
2001/10/12
FML::Command
remove error_nl()
FML::Command::Admin::resign
->SUPER::process()
FML::Command::Admin::subscribe
clean up log message, LogError() -> croak()
FML::Command::User::subscribe
use reply_message_nl()
FML::Command::User::unsubscribe
confirm version
FML::Config
expand_variable_in_buffer can take optional $args
FML::Credential
bug fix variable name
FML::Process::Kernel
implement search template mechanism in reply_message_nl()
$config->expand_variable_in_buffer() takes optional $args
FML::Process::Command
use reply_message_nl()
remove exception mechanism by $obj->error_nl();
etc/
define $message_message_dir
add chaddr to $available_commands
メッセージ
テンプレートは euc-jp を使う
FML::Config
expand_variable_in_buffer()
expand $varname to $config->{ varname }
FML::Process::Command
add _pre_scan()
even not member need to use $confirm_keyword.
for example, 'guide', 'subscribe', 'confirm'
add _can_accpet_command()
1. simple command syntax check
2. use of this command is allowed in FML::Config or not ?
3. Even new comer need to use commands [ guide, subscirbe, confirm ].
enable confirmation
FML::Confirm module を利用します
変数 $available_commands_for_stranger を定義する。
FML::Confirm provides basic functions needed for confirmation
+ FML::Command::User::subscribe
+ FML::Command::User::confirm
+ FML::Confirm
FML::Command::Admin::subscribe
check address is specified or not
FML::Command::User::help
clean up
expand_variables_in_file() -> prepare_file_to_return()
FML::Process::Kernel
define prepare_file_to_return():
expand $xxx variables in template (e.g. $help_file).
1. in Japanese case, convert kanji code::iso-2022-jp -> euc
2. expand variables::$ml_name -> elena
3. back kanji code::euc -> iso-2022-jp
4. return the new created template
2001/10/11
FML::Filter::Utils
it provides utility functions
is_secure_command_string()
is_valid_mail_address()
FML::Process::Command
it checks input by FML::Filter::Utils::is_secure_command_string()
2001/10/10
コマンド
get mget help などが動くようになった。
FML::Config
check defined() more
FML::Credential
implement is_same_address() completely.
is_member() accpepts $args->{ address }
define set_compare_level(), get_compare_level()
add variables
command_prompot = >>>
help_file = $message_template_dir/help
message_template_dir = $fml_share_dir/template/$template_file_charset
template_file_charset = $default_charset
Mail::Delivery::SMTP
old IO::Socket has no connected() method. modified to use our
own socket_is_connected() method or remove connected() check.
Mail::Delivery::SMTP
+ bug fix: ensure we handle IPv6 case more restrictly
Mail::Delivery::Net::INET6
+ bug fix: clear error counter
+ check more defined($socket) or not, socket is connected
+ more debug log
FML::Process::Kernel
define prototype for reply_message_nl() for natural language
check more defined() or not
more debug info
define expand_variables_in_file()
+ expand $xxx variables in template (e.g. $help_file).
FML::Process::Command
bug fix: $obj->$command where $command is a command name not line.
modified to use reply_meessage_nl()
FML::Command
define error_nl(), but a dummy yet now
+ get natural language information
2001/10/09
libexec/Standalone.pm
check $config->{ $x } is defined() or not
Ticket System
consider $ticket_subject_tag_location in regexp
change ticket_id_syntax to "$ml_name/%d" by default
define ticket_subject_tag_location as "appended"
change default ticket syntax
etc/default_config.cf.ja
etc/defaults/tickets.cf.ja
FML::Header::Subject
change regexp_compile().
quotemeta() firstly, and hack a few
FML::Process::Command
catch up the modification in FML::Process::Distribute.
make command function work with replying request mail.
disable lock()/unlock() since each command module lock/unlock
by itself.
FML::Process::Distribute
modified finish() to use queue_flush()
2001/10/08
メールでのコマンドの応答を可能にした(プロトタイプ)
add a lot of debug messages
* Affcted modules:
FML::Command
FML::Process::Command
FML::Process::Distribute
FML::Process::Kernel
FML::Process::Switch
* newly added:
FML::Command::User::help
* test tools:
regress/simulation/test-ctl.sh
regress/testmails/text=plain.command
FML::Command
FML::Process::Kernel
more debug info
FML::Process::Distribute
log ACL error
FML::Process::Switch
enable "loader --ctladdr" behaves as libexec/command
more debug messages
modify style e.g. eval q## -> eval q{} et. al.
regress/simulation/test-ctl.sh
added simple command mode emulator
regress/simulation/perlcheck
add -I ../../fml/libexec
libexec/loader
die() -> croak()
define missing default value in initialization
remove obsolete variable: $libexec_dir
eval()-fiy more
fix error message
show $@ in error
fix typo
fix: more severe initialization check
FML::Credential
2001/09/23
Mail::Message
implement get_encoding_mechanism() in Mail::Message.
implement get_offset(): return offset information in the data.
return value is ARRAY.
return encoding type for specified Mail::Message not whole mail.
The return value is one of base64, quoted-printable or undef.
Modified Files:
fml/lib/Mail/Message.pm
fml/doc/ja/tutorial/module/Mail::Message.sgml
regress/message/dump.pl
チュートリアル
module に関する新パートの創設
module/ ディレクトリを創設
Mail::Message
IO::Adapter
のプロトタイプを用意する。
このディレクトリでは各モジュールの詳細な使い方について
記述するもの。
FML::Filter
fml 4.0.x 相当の機能をきちんと実装する。
# ただし、ウィルスチェックは除く
XXX これで、おおむね、いつでも入れ換え可能か?
Utils を削除し、関数は適当なモジュールへ移動
move clean_up_buffer() and compare_euc_string() to
FML::Filter::BodyCheck and FML::Language::Japanese::Utils
respectively to remove FML::Filter::Utils.
MS GUID を判別するルーチンも実装した
2001/09/22
FML/Config.pm
if ($ENV{'debug'}) { ... debug ...;}
TinyScheduler.pm
FML/Command/Admin/edit.pm
modified to use File::Spec
2001/09/18
errormail collection
add netscape messaging server 3.54 sample
thanks PR for Toshimi Aoki
2001/09/17
IO::Adapter
* IO::Adapter::{DBI,MySQL,RDBMS}.pm
rename: $self->{ _driver } -> $self->{ _model_specific_driver }
dynamically load DBD:mysql
move replace(), getline() and get_nextvalue() to DBI.pm
since these functions are MI (Map Independent).
implement setpos(), getpos() and eof() in MySQL.pm
since these functions is dependent on map type (MD).
RDBMS.pm is not used now, so removed.
* IO/Adapter.pm
change replace()
o fix typo: s/regexp/replace/
o fix case insensitive search when $show_all is on
o call md_find (md == map dependent, function) if defined
o enabled to call md_XXX()
define AUTOLOAD() to hook up md_XXX() functions
XXX For example, md_XXX() should be implemented at
XXX IO::Adapter::SQL::toymodel.pm
* IO/Adapter/SQL/toymodel.pm
rename: fetch_and_cache_address_list -> fetch_all
implement md_find()
2001/09/13
FML::Process::QueueManager
send() can take queue id as the argument
FML::Process::Kernel
more friendly error message
implement queue_flush($queue): This flush C<$queue>, that is,
send mail specified by C<$queue>. It uses
FML::Process::QueueManager module.
FML::Config.pm
define FIRSTKEY and NEXTKEY for complete hash emulation
FML::Command::Admin ユーザ用コマンド群
commit prototype
makefml uses this class
2001/08/26
FML::Credential
implement has_address_in_map() method and is_member() uses this.
has_address_in_map() searches the address in the specified map.
IO::Adapter クラス
touch() メソッドを追加
XXX file タイプ以外では無意味。ダミー
FML::Command:: クラスの再構成
FML::Command.pm FML::Command クラス以下への入口
FML::Command::ACL ACL
FML::Command::Utils よもやまの定義
FML::Command::User ユーザ用コマンド群
FML::Command::Admin ユーザ用コマンド群
newml edit などは Admin のみ
2001/08/24
regress/
add&enable FML::Config {+,-}= overload test tools
2001/08/23
FML::Config の拡張
postfix style のさらなる拡張
変数名 += 値
変数名 -= 値
で、特定の値の足し引きができます。
例:
x = a b c d
x -= b
は
x = a c d
x = a b c d
x += e
は
x = a b c d e
などとなる。
2001/08/22
clean up
File::Spec を使うように変更
2001/08/21
Tie::JournaledDir クラスの創設
Tie::JournaledFile の clean up
Tie::JournaledDir クラスはキャッシュとしてあるディレクトリを使い、
その中の複数個のファイルを順番に使います。
それぞれのファイルは Tie::JournaledFile を使ってアクセスします。
これにより auto expiration をする Journaled 型キャッシュを実現
します。
add Tie::JournaledDir which wraps Tie::JournaledFile and uses some
directory as cache area.
add/update test tools for Tie::Journaled{File,Dir} modules.
clean up Tie::JournaledFile
o remove header in the cache file
o $self->{ 'key' }
o $debug is on if $ENV{'debug'} is defined.
o more carefull check of whether the value is defined or not.
o quotemeta() for pre search key in find()
o rename grep() to find()
2001/08/19
フィルタコードの改良
一行メールか否か?の判定コードをきれいにする
そのために signature や引用か?を判定するコード他を書く
Utils.pm もきれいにし、いらないコードを消した。
2001/08/06
フィルタ
clean up
fml/lib/
fml/etc/
変数名の変更をする。s/header_check/header_loop_check/
ループチェックの設定であることを変数名自体ではっきりさせる
IO::Adapter
IO::Adapter
set @ISA = qw(IO::Adapter::ErrorStatus) to call error_set()
check $@ before call configure()
add more debug codes
IO::Adapter::MySQL
メインの部分を IO::Adapter::SQL:: 以下へ移す
IO::Adapter::MySQL は単なるフロントエンドにする
2001/08/02
Mail::Message
bug fix wrong handling of "\n" at the last of part
2001/07/31
rename FML::NL to FML::Language
Mail::Bounce class
以下のパターンを解析できるようになったはずです。
Lotus Notes
pakeo.ne.jp
jp-r.ne.jp (ほんとか?)
Mail::Bounce::Language::Japanese
日本語依存パーサを作成する
Mail::Bounce::DSN
call again $self->address_clean_up($addr, $addr)
gives $addr itself as a hint of fixing broken address
domain part of $addr may match someting e.g. nifty.ne.jp, webtv.ne.jp.
Mail::Bounce.pm
Mail::Bounce::FixBrokenAddress.pm
use Mail::Bounce::FixBrokenAddress to clean up address
Mail::Bounce::FixBrokenAddress class provides irrgular
address handlings, so handles domain/MTA specific addresses.
For example, nifty.ne.jp, webtv.ne.jp, ...
2001/07/30
Mail::Bounce class
pick up Reporting-MTA and Received-From-MTA in DSN
clean up documentation
add error examples
modify Mail::Bounce::$module return "hints" to caller
(Mail::Bounce class).
2001/07/19
add errormail samples
freeserve.ne.jp
webtv.ne.jp
2001/07/15
設定変数
pid を _pid へ変更
FML::Config
enable read and write configuration file
コメントを保存しつつ postfix スタイルの設定ファイルの
読み書きを可能にするように
2001/07/15
このファイルを創設する:)
$FML: CHANGES.txt,v 1.88 2002/07/13 14:28:09 fukachan Exp $