Solaris 开发者安全性指南

显示状态码

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


示例 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);