Trusted Solaris 開発ガイド

return トークン

return トークン AW_RETURN は、1 つの数値 (成功または失敗) と戻り値を受け入れます。デフォルトでは、return トークンは success (成功) と戻り値 0 を示します。return トークン値は、auditwrite(3) ルーチンに渡す直前に設定します。

戻り値は、監査レコードが監査トレールのログをとるかどうかを決定します。プロセスの事前選択マスクが、イベントの属するクラスに対し、イベントが失敗したかどうかだけを監査する場合には、成功イベントのログはとられません。プロセスの事前選択マスクが、イベントの属するクラスに対し、イベントが成功したかどうかだけを監査する場合には、失敗イベントのログはとられません。プロセスの事前選択マスクが、イベントが属しているクラスに対し、成功と失敗の両方を監査する場合には、成功イベントと失敗イベントの両方のログがとられます。また、auditreduce(1M) 事後選択プログラムは、レコードの return トークン内の成功または失敗を表す値によって、監査レコードを選択します。

次の例は、システムが 2 番目の署名を要求したことを示す、監査レコードの一部を作成します。signature_request() 関数は、署名の取得を試み、試みの成功または失敗を表す情報を返し、signature_requestretval パラメータを設定します。succ_or_fail パラメータは signature_request 内の値に基づいて設定され、このパラメータと retval は、AW_RETURN トークンに対して値として渡されます。

char			succ_or_fail;
 u_int			retval;

 auditwrite(	AW_TEXT, "Second signature needed,"
 			AW_APPEND, AW_END);

 if (signature_request() == -1) {
 	succ_or_fail = -1;
 	retval = -2;
 } else {
 	succ_or_fail = 0;
 	retval = 1;
 }

 auditwrite(	AW_EVENT, "AUE_second_signature",
 			AW_RETURN succ_or_fail, retval,
 			AW_WRITE, AW_END);

署名は取得されず、表示用の端末は次のレコードを表示します。


header,128,2,second signature requested,,Wed Sep 11 10:17:37 1996, + 239969000 msec

text, Second signature needed

return,failure,-2

subject,zelda,zelda,staff,zelda,staff,1905,536,0 0 phoenix

slabel,C