ネットワークに接続したマシンのユーザーは、次の 3 つの項目によって識別できます。(a) マシン名。たとえば、krypton。(b) ユーザーの UID。これについては、geteuid(2) のマニュアルページを参照してください。(c) ユーザーが所属するグループ番号。これについては、getgroups(2) のマニュアルページを参照してください。これらの識別情報を持つ構造体と、それに対する XDR ルーチンは例 A-7 のようにコーディングできます。
struct netuser {
char *nu_machinename;
int nu_uid;
u_int nu_glen;
int *nu_gids;
};
#define NLEN 255 /* マシン名は 255 文字以下 */
#define NGRPS 20 /* ユーザーが所属するグループ数は 20 以下 */
bool_t
xdr_netuser(xdrs, nup)
XDR *xdrs;
struct netuser *nup;
{
return(xdr_string(xdrs, &nup->nu_machinename, NLEN) &&
xdr_int(xdrs, &nup->nu_uid) &&
xdr_array(xdrs, &nup->nu_gids, &nup->nu_glen, NGRPS,
sizeof (int), xdr_int));
}
|