コマンドの処理のフロー

すべての処理は最終的に「FML::Command」クラス経由で「FML::Command::モー ド::コマンド」クラスを呼び出します。GUI および CUI、コマンドメールは、 そこに至る前処理の段階が異なるだけです。

コマンドメールの処理

Caution

2004/03/05 以降は、新しいフレームワークとなりました。

まず、コマンドは行単位で、解析されます。

空行を無視するなどの基本的な処理の後、コマンド(行の先頭の文字列)が、現 在のコンテキストで許されるコマンドか否か?を確認します。

1) guideやsubscribeのようにメンバー以外にも許されるコマンドであれば、 直接コマンド呼び出しルーチンへ処理が移ります。

2) メンバーだけに許されるコマンドの場合、 command_mail_restrictionsのルールに従って他の条件を確認し、 許されたなら、呼び出しルーチンへ処理が移ります。

「呼び出しルーチン」では、 (コマンドに依存した)返事の送り先の確認と (コマンドに依存する)シンタックスチェックを経て、 FML::Command クラス経由でコマンドが実行されます。 この実行は一般ユーザ権限で実行されます。

admin コマンドの実行は、ここでは行なわれません。「admin ...」コマンド は、まず一般ユーザ権限の admin コマンドとして処理が薦められ、最終的に 「FML::Command::User::admin」クラスが呼び出されます。このクラスの中で、 $admin_command_mail_restrictions に基づいてリモート権限があるか?が確 認され、もう一度「FML::Command」クラス経由で管理者権限の 「FML::Command::Admin::コマンド」クラスが呼び出されます。

CUI (makefml/fml)の処理

このプログラムを使える時点で管理者権限があるはずです。よって、 FML::Command経由で「FML::Command::Admin::コマンド」クラスを直接呼び出 しています。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml-devel/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.