日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ACCEPT_FILTER(9) FreeBSD カーネル開発者マニュアル ACCEPT_FILTER(9)
名称
accept_filter, accept_filt_add, accept_filt_del,
accept_filt_generic_mod_event, accept_filt_get -- 着信接続をフィルタリン
グする
書式
#include <sys/types.h>
#include <sys/module.h>
#include <sys/socket.h>
#define ACCEPT_FILTER_MOD
#include <sys/socketvar.h>
int
accept_filt_add(struct accept_filter *filt);
int
accept_filt_del(char *name);
int
accept_filt_generic_mod_event(module_t mod, int event, void *data);
struct accept_filter *
accept_filt_get(char *name);
解説
accept (受け付け) フィルタによって、アプリケーションは、カーネルが着信接
続を前処理ことを要求することができます。accept フィルタは、
SO_ACCEPTFILTER の optname で渡して、setsockopt(2) システムコールを通して
要求されます。
実装に関する注
accept フィルタにしたいモジュールは、システムに次の struct accept_filter
構造体を提供しなければなりません:
struct accept_filter {
char accf_name[16];
void (*accf_callback)(struct socket *so, void *arg, int waitflag);
void * (*accf_create)(struct socket *so, char *arg);
void (*accf_destroy)(struct socket *so);
SLIST_ENTRY(accept_filter) accf_next; /* リストの次のエントリ */
};
モジュールは、malloc(9) で割り付けられた、struct accept_filter へのポイン
タ渡す、関数 accept_filt_add() で、それを登録するべきです。
struct accept_filter のフィールドは、次の通りです:
accf_name フィルタの名前。これは、ユーザランドからアクセスされる方法
です。
accf_callback いったん接続が確立されると、カーネルが行なうコールバック。
それは、ソケット upcall と同様で、接続が確立されるとき、
コールバックがソケットのフラグを修正しないなら、新しいデー
タがソケットに到着するときはいつでも呼び出されます。
accf_create setsockopt(2) が、listen して (接続を受け付けて) いるソ
ケット上にフィルタをインストールするときはいつでも呼び出さ
れます。
accf_destroy ユーザがソケット上の accept フィルタを削除するときはいつで
も呼び出されます。
accept_filt_del() 関数は、accept_filt_add() で登録の間に、
accept_filter.accf_name で使用される同じ文字列を渡されました、そしてカー
ネルは、それ以上のフィルタのユーザランドの使用を無効にします。
accept_filt_get() 関数は、setsockopt(2) システムコールによって使用する
accept フィルタを見つけるために内部で使用されます。
accept_filt_generic_mod_event() 関数は、それら自体をロードしアンロードす
るために引数フィールドを使用しない accept フィルタのためのコードの重複を
回避する単純な方法を提供しています。この関数は、DECLARE_MODULE(9) マクロ
のために moduledata_t 構造体で使用することができます。
関連項目
setsockopt(2), accf_data(9), accf_dns(9), accf_http(9), malloc(9)
歴史
accept フィルタメカニズムは、FreeBSD 4.0 で導入されました。
作者
このマニュアルページは、Alfred Perlstein, Sheldon Hearn と Jeroen Ruigrok
van der Werven によって書かれました。
accept フィルタの概念は、Yahoo! の David Filo によって開発され、Alfred
Perlstein によってロード可能なモジュールシステムとなるように改良されまし
た。
FreeBSD 13.2 June 25, 2000 FreeBSD 13.2