これらのネットワークライブラリルーチンは、Trusted Solaris 7 ホストとの間で送受信されるメッセージのセキュリティ属性を処理します。
これらのルーチンは、システムによりサポートされるセキュリティ属性の属性マスク、属性構造に割り当てられる領域の属性、属性構造内の属性を作成します。マスク変数に t6mask_t 列挙型値を割り当てる代わりに、これらのルーチンを使用できます。
t6mask_t t6supported_attrs(void); t6mask_t t6allocated_attrs(t6attr_t t6ctl); t6mask_t t6present_attrs(t6attr_t t6ctl);
t6alloc_blk(3N) ルーチンは、new_attrs で指定されているセキュリティ属性に割り当てられた十分な領域を使用して、セキュリティ属性構造を作成します。 t6free_blk(3N) ルーチンは、セキュリティ属性構造 t6ctl に割り当てられた領域を解放します。詳細は、t6alloc_blk(3N) のマニュアルページを参照してください。
t6attr_t t6alloc_blk( t6mask_t *new_attrs); void t6free_blk( t6attr_t t6ctl);
t6sendto(3N) ルーチンは、メッセージとともにセキュリティ属性を送信します。t6recvfrom(3N) ルーチンは、メッセージとそのセキュリティ属性を受信します。t6new_attr(3N) が有効な場合、t6recvfrom(3N) は、new_attrs 内の属性が変更されているときだけセキュリティ属性を受信します。詳細は、t6sendto(3N)、t6recvfrom(3N)、t6new_attr(3N) のマニュアルページを参照してください。
これらのルーチンは、ソケット固有のものです。トランスポートレイヤーインタフェース (TLI) では、t6recvfrom(3N) と t6new_attr(3N) の代わりに t6last_attr(3N) を、t6sendto(3N) の代わりに t6set_endpt_default(3N) を使用してください。
int t6sendto( int sock, const char *msg, int len, int flags, const struct sockaddr *to, int tolen, const t6attr_t *attr_ptr); int t6recvfrom( int sock, char *buf, int len, int flags, struct sockaddr *from, int *fromlen, t6attr_t *attr_ptr, t6mask_t *new_attrs); int t6new_attr( int sock, t6cmd_t cmd);
t6get_attr(3N) ルーチンは、attr_type 内の属性をセキュリティ属性構造 t6ctl から取得します。戻り値は、「属性の列挙」で説明しているように、正しい型に変換する必要があります。
t6set_attr(3N) ルーチンは、セキュリティ属性構造 t6ctl 内の attr に指定された値を使用して、attr_type 内の属性を設定します。
詳細は、t6get_attr(3N) のマニュアルページを参照してください。
void * t6get_attr( t6attr_id_t attr_type, const t6attr_t t6ctl); int t6set_attr( t6attr_id_t attr_type, const void *attr, t6attr_t *t6ctl);
t6peek_attr(3N) ルーチンは、受信されるデータの次のバイトの attr_ptr 内のセキュリティ属性を確認します。t6last_attr(3N) ルーチンは、受信されたデータの最後のバイトのセキュリティ属性を確認します。詳細は、t6peek_attr(3N) のマニュアルページを参照してください。
int t6peek_attr( int sock, t6attr_t attr_ptr, t6mask_t *new_attrs); int t6last_attr( int sock, t6attr_t attr_ptr, t6mask_t *new_attrs);
t6size_attr(3N) ルーチンは、セキュリティ属性構造 t6ctl の attr_type で指定されたセキュリティ属性の値のサイズをバイト単位で取得します。t6size_attr(3N) のマニュアルページを参照してください。
size_t t6size_attr( t6attr_id_t attr_type, const t6attr_t t6ctl);
これらのルーチンは、attr_src をコピーします。詳細は、t6copy_blk(3N) と t6dup_blk(3N) のマニュアルページを参照してください。
void t6copy_blk( const t6attr_t attr_src, t6attr_t attr_dest); t6attr_t t6dup_blk( const t6attr_t attr_src);
このルーチンは、1 つのセキュリティ属性を別のセキュリティ属性と比較します。詳細は、t6comp_blk(3N) のマニュアルページを参照してください。
int t6cmp_blk( t6attr_t t6ctl1, t6attr_t t6ctl2);
このルーチンは、mask に t6ctl に基づいて指定された属性をクリアします。詳細は、t6clear_blk(3N) のマニュアルページを参照してください。
void t6clear_blk( t6mask_t mask, t6attr_t t6ctl);
t6set_endpt_default(3N) ルーチンは、mask で示された attr 内のセキュリティ属性値を、通信終端に設定します。t6set_endpt_mask(3N) ルーチンは、終端 mask だけを設定します。
t6get_endpt_default(3N) ルーチンは、mask で示された attr 内のセキュリティ属性値を、通信終端から取得します。t6get_endpt_mask(3N) ルーチンは、終端 mask だけを取得します。
詳細は、t6get_endpt_mask(3N) のマニュアルページを参照してください。
int t6get_endpt_default( int sock, t6mask_t *mask, t6attr_t attr); int t6set_endpt_mask( int sock, t6mask_t mask); int t6set_endpt_default( int sock, t6mask_t mask, const t6attr_t attr_ptr); int t6get_endpt_mask( int sock, t6mask_t *mask);
このルーチンは、ほかのベンダーとの互換性のために、拡張セキュリティオペレーションを有効または無効にします。このオペレーションは、デフォルトでは有効です。無効にされる場合、通信がシステムの必須アクセス制御および任意アクセス制御のもとにあるかぎり、メッセージは送受信できます。詳細は、t6ext_attr(3N) のマニュアルページを参照してください。
int t6ext_attr( int fd, t6cmd_t cmd);