maildropではgdbm系の関数を利用して GDBM/DBファイル (単純なデータベース) へアクセスすることができます。 gdbm系の関数はキー/値ペアの高速な検索と格納を提供します。
GDBM/DBデータベースファイルの作成にはどのプログラムを利用してもかまいません。 makedatは普通のテキストファイルからGDBMあるいはDBファイルを作成するための 簡単なツールです。
maildropが GDBM と DB どちらの形式のデータベースを用いるのか、 また makedat が GDBM と DB どちらのデータベースファイルを作成するのかは システム管理者が選択します。
makedatコマンドは利用できないかもしれません。 maildropでのGDBM/DBの提供はオプションであり、 システム管理者はGDBM/DBの提供とmakedatを利用しないと決めたかもしれません。
GDBM と DB どちらがサポートされているのかは、 "maildrop -v"コマンドで表示されます。
makedatのtextfile引数はキー/値ペアの単純なテキストファイルです。 各行はキー値、タブ、そして値からなります。 値が指定されない時には"1"とみなされます。 例えば、次の3行の場合:
3つのキー/値ペアが作成されます: キー"example.com"/値"1"、 "domain.com"/"ok"、 "foo.domain.com"/"bad"です。
textfileファイル中の空行、および # 文字 ではじまる行は無視されます。
textfile 引数に "-"が指定された場合は標準入力から読み取ります。
gdbmfile は作成する GDBM/DB ファイルです。 実行前に存在していた場合、その中身は置き換わります。
tmpfile は一時ファイルで、gdbmfileがあるディレクトリと同じディレクトリにしなければいけません。 makedatは GDBMファイルをtmpfileとして作成し、tmpfileは gdbmfileにリネームされます。
これによりmaildropのgadmコマンドで使用中のGDBM/DBファイルの更新にロックを用いずに済みます。 なお、makedat はtmpfileの作成には何らロック機構を用いないので、 同じtmpfile名で同時にmakedatを使用することは禁止です。
-cidrフラグはキーがCIDR表記のネットブロック(例:"10.1.2.0/24") であることを指定します。 このフラグの使用にはPerlモジュールNet::CIDRがインストールされていなければなりません。 Net::CIDRは http://www.cpan.orgからダウンロードできます。
maildropのデータベース関数がgdbm系関数と呼ばれるのには歴史的な理由があります。 最初の実装がGDBMだけだったからです。 GDBMの替わりにDBも扱えるようになったのは後になってからです。