qm-maildir-quota.c version 0.4 ------------ qmailでMaildirを使うとき用の、簡易quotaです。 各Maildir毎に簡易的にですが容量制限をかけることが出来ます。 といっても、ユーザーが値を変更するようになっているので、基本的にはアドレス再配布向けです。 コンパイル方法: 普通にコンパイルするだけです。 % gcc -o qm-maildir-quota qm-maildir-quota.c インストール方法: 普通にコピーするだけです # cp qm-maildir-quota インストール先Directory 使用方法: .qmail-*(.qmail)ファイルに | インストール先Directory/qm-maildir-quota ./Maildir/ を追加。 この行以降のメールアドレス(及び、メールディレクトリ・メールボックス)には、./Maildir/(任意可能)での容量制限が適応されます。 .qm-quota以外のファイルを設定ファイルとして使う場合、 | インストール先Directory/qm-maildir-quota ./Maildir/ .conffile の様に設定します。(以下.qm-quotaとして解説) 容量制限用ファイル: ./Maildir/.qm-quota というファイルに、制限する容量(バイト単位)を書き込みます。 なお、使用できる値は、1〜約20億(2147483640(SIZE_INT_MAXSIZE)以下)です。 0を指定したり、内容が無かったり、このファイルが無い場合は、制限チェックは行われません。 -(負)の値を指定したり、数字以外の文字が入っていたり(最後の改行文字だけは許可されています)した場合は、一時エラーになります。 owner以外に書き込み・実行権限があった場合、一時エラーになります。 ファイルの持ち主が、実行者以外の場合、一時エラーになります。 sticky bitが立っている場合、一時エラーになります。 容量チェックされる領域は、./Maildir/newと./Maildir/curの、.で始まっていない、通常ファイルです。 通常ファイル以外のファイルで、.で始まっていないファイルがあった場合、一時エラーになります。 !!注意!! メールボックス指定、設定ファイル指定両方とも、パスのチェックをしません。 環境変数等からファイル名を取得する場合はご注意下さい。 プログラムの内部定義変数 48: #define QUOTE_FILE_NAME デフォルトの設定ファイル名 (./Maildir/QUOTE_FILE_NAME) 50: #define OUT_TO_MESSAGE_STDERR 消すとエラーメッセージが表示されなくなります。 85: #define SIZE_INT_MAXSIZE 読み込めるサイズの最大値を表します。(sizeof(int)が4(32bit環境)では変更しない方が良いです。) limits.hのINT_MAXより最低2は少ない値にして下さい。 86: #define READ_QUOTE_FILE_BUF 設定ファイルから読み込むサイズの最大バイトを指定します。 SIZE_INT_MAXSIZEを桁数に直した値+3以上を指定して下さい。 227〜 容量をオーバーした場合の処理(エラーメッセージ出力) 232〜 エラー時の挙動 上記以外は変更する必要はまず無いと思います。 転載について このプログラム・テキスト等の転記・転載・再配布等は一切禁止します。 どうしても転載・転記・再配布等行いたい場合 ituki@fc.to までメールでご相談下さい。 著作権について Ituki Kirihara/NIはこのプログラムを使った事によって生じた一切の責任を負いません。 各自の責任で使用して下さい。 使用に関して、特に金銭的請求をすることはありません。 これらのプログラムの著作権は、Ituki Kirihara/NIが保有しています。 このプログラムにパッチを当てた物を公開する場合、パッチファイルとして公開して下さい。 (オリジナルの部分はなるべく公開しないで下さい) サポート メール ituki@fc.to にて受け付けております。バグ・意見等ありましたらどうぞ。 ただ、時間がないため、対応できるかはあやしいです(^_^; 以下の場所で関連情報等を公開しています http://fc.to/ituki/ このホームページは Ituki Kiriharaの趣味のページです(^_^; バージョン履歴 version 0.4 2002/06/02 内部構造を変更 version 0.3 2002/04/12 任意の設定ファイルを読み込めるように変更。 version 0.2.1 2002/04/12 バグ修正(1カ所だけ読み込みサイズの判定の数字書き間違ってました)。SIZE_INT_MAXSIZE追加。 version 0.2 2002/04/10 内部構造を変更 version 0.1 2001/09/17 ファイルのオーナーのチェックを追加 version 0.0 2001/09/16 公開。 (c) Copyright 2001-2002 Ituki Kirihara/NI All rights reserved.