EN JA
RPCBIND(3)
RPCBIND(3) FreeBSD Library Functions Manual RPCBIND(3)

名称

rpcb_getmaps, rpcb_getaddr, rpcb_gettime, rpcb_rmtcall, rpcb_set, rpcb_unsetRPC バインドサービスのためのライブラリルーチン

ライブラリ

Standard C Library (libc, -lc)

書式

#include < rpc/rpc.h>

rpcblist *
rpcb_getmaps( const struct netconfig *netconf, const char *host);

bool_t
rpcb_getaddr( const rpcprog_t prognum, const rpcvers_t versnum, const struct netconfig *netconf, struct netbuf *svcaddr, const char *host);

bool_t
rpcb_gettime( const char *host, time_t * timep);

enum clnt_stat
rpcb_rmtcall( const struct netconfig *netconf, const char *host, const rpcprog_t prognum, const rpcvers_t versnum, const rpcproc_t procnum, const xdrproc_t inproc, const caddr_t in, const xdrproc_t outproc, const caddr_t out, const struct timeval tout, const struct netbuf *svcaddr);

bool_t
rpcb_set( const rpcprog_t prognum, const rpcvers_t versnum, const struct netconfig *netconf, const struct netbuf *svcaddr);

bool_t
rpcb_unset( const rpcprog_t prognum, const rpcvers_t versnum, const struct netconfig *netconf);

解説

これらのルーチンで、クライアントの C プログラムが RPC バインドサービスを呼び出す手続きを作ることができます。プログラムとそれらのユニバーサル (全体) アドレスの間のマッピングのリストの維持については ( rpcbind(8) を参照してください)。

ルーチン

rpcb_getmaps()
現在の RPC プログラムからアドレス (program-to-address) への host でのマッピングのリストを返す、rpcbind サービスへのインタフェース。それは host でリモート rpcbind サービスに連絡するために netconf を通して指定された転送を使用します。このルーチンは、リモート rpcbind に連絡することができないなら、 NULL を返します。
rpcb_getaddr()
プログラム番号 prognum、バージョン versnum で登録される host でサービスのアドレスを見つけ、 netconf に関連している転送プロトコルを話す、 rpcbind サービスへのインタフェース。見つけられたアドレスは svcaddr に返されます。 svcaddr 引数は前もって割り付けられるべきです。このルーチンは、成功するなら、 TRUE を返します。 FALSE の返り値は、マッピングが存在しなかったか、または RPC システムがリモート rpcbind サービスに連絡することが失敗することを意味します。後者の場合、グローバル変数 rpc_createerr ( rpc_clnt_create(3) 参照) は RPC 状態を含みます。
rpcb_gettime()
このルーチンは host の時間を timep に返します。 hostNULL であるなら、 rpcb_gettime() は、それ自体のマシンの時間を返します。このルーチンは、成功するなら、 TRUE を返し、失敗するなら、 FALSE 返します。 rpcb_gettime() 関数は、クライアントとリモートサーバの間で時間を同期させるために使用することができます。
rpcb_rmtcall()
そのホストで利用者に代わって手続きを RPC 呼び出しするように host で rpcbind に命令する、rpcbind サービスへのインタフェース。 netconfig() 構造はコネクションレス転送に対応するはずです。 svcaddr 引数は手続きが成功するなら (他の引数の定義に関しては rpc_clnt_calls(3)rpc_call() と clnt_call() を参照してください)、サーバのアドレスに変更されます。

この手続きは通常、“ping”のために使用されるべきで、他に何も使用されません。このルーチンで、プログラムは 1 ステップですべての検索と呼び出しを行うことができます。

注: サーバが稼働していなくても、 rpcb_rmtcall() はどんなエラーメッセージも呼び出し側に返しません。そのような場合には呼び出し側はタイムアウトします。

注: rpcb_rmtcall() は、コネクションレス転送にのみ利用可能です。

rpcb_set()
マシンの rpcbind サービスで 3 つの[ prognum, versnum, netconf->nc_netid]と svcaddr の間のマッピングを確立する、rpcbind サービスへのインタフェース。 nc_netid の値は netconfig データベースによって定義されるネットワーク識別子に対応しなければなりません。このルーチンは成功すれば、 TRUE を返し、そうでなければ FALSE を返します。 (また、 rpc_svc_calls(3) 中の svc_reg() を参照してください。) rpcbind でそのようなエントリが既に存在しているなら、 rpcb_set() は失敗します。
rpcb_unset()
マシンの rpcbind サービスで 3 つの[ prognum, versnum, netconf->nc_netid]とアドレスの間のマッピングを破壊にする、rpcbind サービスへのインタフェース。 netconfNULL であるなら、 rpcb_unset() はマシンの rpcbind サービスで 3 つの[ prognum, versnum, all-transports]とアドレスの間のすべてのマッピングを破壊します。このルーチンは成功すれば、 TRUE を返し、そうでなければ FALSE を返します。サービスの所有者かスーパユーザだけがマッピングを破壊することができます。 (また、 rpc_svc_calls(3) 中の svc_unreg() を参照してください。)
May 7, 1993 FreeBSD