gss_display_status() 関数は GSS-API 状態コードをテキスト形式に変換して、ユーザーに表示したり、テキストログに格納したりできます。gss_display_status() は一度に 1 つの状態コードしか表示できず、さらに、複数の状態を戻す関数も存在するため、gss_display_status() はループの一部として呼び出す必要があります。gss_display_status() が 0 以外の値コード (例 B–1 の message_context パラメータに戻される値) を示している間、関数は別の状態コードを取得できます。
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);
|