RPC_SVC_REG(3) | FreeBSD Library Functions Manual | RPC_SVC_REG(3) |
名称
rpc_svc_reg, rpc_reg, svc_reg, svc_unreg, svc_auth_reg, xprt_register, xprt_unregister — サーバを登録するためのライブラリルーチンライブラリ
Standard C Library (libc, -lc)書式
#include < rpc/rpc.h> int
rpc_reg( rpcprog_t prognum, rpcvers_t versnum, rpcproc_t procnum, char *(*procname)(), xdrproc_t inproc, xdrproc_t outproc, char *nettype);
bool_t
svc_reg( SVCXPRT *xprt, const rpcprog_t prognum, const rpcvers_t versnum, void (*dispatch)(struct svc_req *, SVCXPRT *), const struct netconfig *netconf);
void
svc_unreg( const rpcprog_t prognum, const rpcvers_t versnum);
int
svc_auth_reg( int cred_flavor, enum auth_stat (*handler)(struct svc_req *, struct rpc_msg *));
void
xprt_register( SVCXPRT *xprt);
void
xprt_unregister( SVCXPRT *xprt);
解説
これらのルーチンは rpcbind ( rpcbind(8) 参照) でそれら自体を登録する RPC サーバを許可にする RPC ライブラリの一部で、ディスパッチ関数に与えられたプログラムとバージョン番号に関連づけます。 RPC サーバが RPC 要求を受け取るとき、ライブラリは適切な引数でディスパッチルーチンを呼び出します。ルーチン
SVCXPRT データ構造の定義に関しては rpc(3) を参照してください。- rpc_reg()
- RPC サービスパッケージにプログラム prognum、手続き procname とバージョン versnum を登録します。プログラム prognum、バージョン versnum と手続き procnum のための要求が到着するなら、 procname は、その引数へのポインタとして呼び出されます。 procname は静的な結果へのポインタを返すべきです。 inproc は引数を復号化するために使用される XDR 関数ですが、一方、 outproc が結果をコード化するために使用される XDR 関数です。手続きはクラス nettype のすべての利用可能な転送で登録されます。 rpc(3) を参照してください。このルーチンは登録が成功すれば、0 を、そうでなければ-1 を返します。
- svc_reg()
-
サービスディスパッチ手続き
dispatch に
prognum と
versnum を関連づけます。
netconf が
NULL であるなら、サービスは
rpcbind(8) サービスに登録されません。
netconf が 0 でなければ、 3 つの[
prognum,
versnum,
netconf->nc_netid]から
xprt->xp_ltaddr へのマッピングは、ローカル rpcbind サービスで確立されます。
svc_reg() ルーチンは、成功すれば 1 を、そうでなければ 0 を返します。
- svc_unreg()
- rpcbind サービス、3 つの[ prognum, versnum, all-transports]からネットワークアドレスへのマッピングと 2 つの[ prognum, versnum]からディスパッチルーチンへの RPC サービスパッケージ内のすべてのマッピングを削除します。
- svc_auth_reg()
-
認証タイプ
cred_flavor で受信された RPC 要求を認証するために呼び出すことができるようにディスパッチメカニズムでサービス認証ルーチン
handler を登録します。開発者は、このインタフェースで、ライブラリを変更する必要なしで、新しい認証タイプをそれらの RPC アプリケーションに追加できます。通常、サービス実装者はこのルーチンを必要としません。
典型的なサービスアプリケーションは、サービスを登録した後で svc_run() を呼び出す前に svc_auth_reg() を呼び出すでしょう。タイプ cred_flavor の RPC 資格証明を処理する必要があるとき、 handler 手続きは 2 つの引数 struct svc_req *rqst と struct rpc_msg *msg で呼び出され、有効な enum auth_stat 値を返すはずです。一度登録された認証ハンドラを変更するか、または削除するための用意はありません。
svc_auth_reg() ルーチンは登録が成功すれば 0 を、 cred_flavor に既に登録された認証ハンドラがあるなら 1 を、そうでなければ、-1 を返します。
- xprt_register()
- RPC サービス転送ハンドル xprt が作成された後に、RPC サービスパッケージに登録されます。このルーチンはグローバル変数 svc_fdset ( rpc_svc_calls(3) 参照) を変更します。通常、サービス実装者はこのルーチンを必要としません。
- xprt_unregister()
- RPC サービス転送ハンドル xprt が破壊される前に、RPC サービスパッケージでそれ自体の登録を取り消します。このルーチンはグローバル変数 svc_fdset ( rpc_svc_calls(3) を参照) を変更します。通常、サービス実装者はこのルーチンを必要としません。
May 3, 1993 | FreeBSD |