return トークン AW_RETURN は、1 つの数値 (成功または失敗) と戻り値を受け入れます。デフォルトでは、return トークンは success (成功) と戻り値 0 を示します。return トークン値は、auditwrite(3) ルーチンに渡す直前に設定します。
戻り値は、監査レコードが監査トレールのログをとるかどうかを決定します。プロセスの事前選択マスクが、イベントの属するクラスに対し、イベントが失敗したかどうかだけを監査する場合には、成功イベントのログはとられません。プロセスの事前選択マスクが、イベントの属するクラスに対し、イベントが成功したかどうかだけを監査する場合には、失敗イベントのログはとられません。プロセスの事前選択マスクが、イベントが属しているクラスに対し、成功と失敗の両方を監査する場合には、成功イベントと失敗イベントの両方のログがとられます。また、auditreduce(1M) 事後選択プログラムは、レコードの return トークン内の成功または失敗を表す値によって、監査レコードを選択します。
次の例は、システムが 2 番目の署名を要求したことを示す、監査レコードの一部を作成します。signature_request() 関数は、署名の取得を試み、試みの成功または失敗を表す情報を返し、signature_request と retval パラメータを設定します。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 |