Solaris Trusted Extensions 開発ガイド

label_to_str() 関数の使用

資格および遠隔ホストラベルを取得したあとに、アプリケーションは label_to_str() を使用してラベルデータ構造体を文字列に変換できます。ラベルデータ構造体の文字列形式は、アプリケーションによって使用できます。

Trusted Extensions 印刷サービスでは、ラベルは文字列として返されます。get_peer_label() 関数は、m_label_t データ構造体でlabel_to_str() を呼び出すことによって取得される文字列を返します。この文字列値は、get_peer_label() 関数の slabel パラメータ、char** slabel に返されます。

次のコード抜粋は、label_to_str() 関数がどのように使用されるかを示します。

sl = ucred_getlabel(uc);
if (label_to_str(sl, &pslabel, M_INTERNAL, DEF_NAMES) != 0)
	syslog(LOG_WARNING, "label_to_str(): %m");
ucred_free(uc);

if (pslabel != NULL) {
	syslog(LOG_DEBUG, "get_peer_label(%d, %s): becomes %s",
		fd, (*slabel ? *slabel : "NULL"), pslabel);
	if (*slabel != NULL)
		free(*slabel);
	*slabel = strdup(pslabel);
}

get_peer_label() ルーチン全体のソースは、get_peer_label() ラベル対応関数」を参照してください。