Oracle Solaris セキュリティーサービス開発ガイド

状態コードの表示

gss_display_status() 関数は、GSS-API 状態コードをテキスト形式に変換します。この形式を使用すると、コードをユーザーに表示したり、テキストログに格納したりできます。関数の中には複数の状態を戻すものもありますが、gss_display_status() 関数は 一度に 1 つの状態コードしか表示できません。このため、gss_display_status() をループの一部として呼び出す必要があります。gss_display_status() が 0 以外の状態コードを示すときは、関数は別の状態コードを取得できます。


例 B–1 gss_display_status() による状態コードの表示

OM_uint32 message_context;
OM_uint32 status_code;
OM_uint32 maj_status;
OM_uint32 min_status;
gss_buffer_desc status_string;

...

message_context = 0;

do {

     maj_status = gss_display_status(
               &min_status,
               status_code,
               GSS_C_GSS_CODE,
               GSS_C_NO_OID,
               &message_context,
               &status_string);

     fprintf(stderr, "%.*s\n", \
               (int)status_string.length, \
               (char *)status_string.value);

     gss_release_buffer(&min_status, &status_string,);

} while (message_context != 0);