函数 gss_display_status() 将 GSS-API 状态码转换为文本格式。采用此格式,可以向用户显示代码或将代码置于文本日志中。gss_display_status() 一次仅显示一个状态码,而且某些函数可以返回多个状态条件。因此,应该将 gss_display_status() 作为循环的一部分进行调用。如果 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);