00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
00018
00019 #ifndef GLOBUS_I_GSS_ASSIST_H
00020 #define GLOBUS_I_GSS_ASSIST_H
00021
00028 #include "globus_gss_assist.h"
00029 #include "globus_common.h"
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00035
00036
00037 extern int globus_i_gsi_gss_assist_debug_level;
00038 extern FILE * globus_i_gsi_gss_assist_debug_fstream;
00039
00040 extern globus_mutex_t globus_i_gsi_gss_assist_mutex;
00041
00042 #ifdef BUILD_DEBUG
00043
00044 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_) \
00045 (globus_i_gsi_gss_assist_debug_level >= (_LEVEL_))
00046
00047 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
00048 { \
00049 if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00050 { \
00051 globus_libc_fprintf _MESSAGE_; \
00052 } \
00053 }
00054
00055 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
00056 { \
00057 if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00058 { \
00059 char * _tmp_str_ = \
00060 globus_common_create_nstring _MESSAGE_; \
00061 globus_libc_fprintf(globus_i_gsi_gss_assist_debug_fstream, \
00062 "%s", _tmp_str_); \
00063 globus_libc_free(_tmp_str_); \
00064 } \
00065 }
00066
00067 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
00068 { \
00069 if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00070 { \
00071 globus_libc_fprintf(globus_i_gsi_gss_assist_debug_fstream, \
00072 _MESSAGE_); \
00073 } \
00074 }
00075
00076 #else
00077
00078 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_) 0
00079 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
00080 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
00081 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_PRINT(_LEVEL, _MESSAGE_) {}
00082
00083 #endif
00084
00085 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_ENTER \
00086 GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF( \
00087 2, (globus_i_gsi_gss_assist_debug_fstream, \
00088 "%s entering\n", _function_name_))
00089
00090 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_EXIT \
00091 GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF( \
00092 2, (globus_i_gsi_gss_assist_debug_fstream, \
00093 "%s exiting\n", _function_name_))
00094
00095
00096
00097 #define GLOBUS_GSI_GSS_ASSIST_ERROR_RESULT(_RESULT_, _ERRORTYPE_, _ERRSTR_) \
00098 { \
00099 char * _tmp_str_ = \
00100 globus_common_create_string _ERRSTR_; \
00101 _RESULT_ = globus_i_gsi_gss_assist_error_result(_ERRORTYPE_, \
00102 __FILE__, \
00103 _function_name_, \
00104 __LINE__, \
00105 _tmp_str_, \
00106 NULL); \
00107 globus_libc_free(_tmp_str_); \
00108 }
00109
00110 #define GLOBUS_GSI_GSS_ASSIST_ERROR_CHAIN_RESULT(_TOP_RESULT_, _ERRORTYPE_) \
00111 _TOP_RESULT_ = globus_i_gsi_gss_assist_error_chain_result(_TOP_RESULT_, \
00112 _ERRORTYPE_, \
00113 __FILE__, \
00114 _function_name_, \
00115 __LINE__, \
00116 NULL, \
00117 NULL)
00118
00119 #define GLOBUS_GSI_GSS_ASSIST_LONG_ERROR_RESULT(_RESULT_, \
00120 _ERRORTYPE_, \
00121 _ERRSTR_, \
00122 _LONG_DESC_) \
00123 { \
00124 char * _tmp_str_ = \
00125 globus_common_create_string _ERRSTR_; \
00126 _RESULT_ = globus_i_gsi_gss_assist_error_result(_ERRORTYPE_, \
00127 __FILE__, \
00128 _function_name_, \
00129 __LINE__, \
00130 _tmp_str_, \
00131 _LONG_DESC_); \
00132 globus_libc_free(_tmp_str_); \
00133 }
00134
00135 #define GLOBUS_GSI_GSS_ASSIST_LONG_ERROR_CHAIN_RESULT(_TOP_RESULT_, \
00136 _ERRORTYPE_, \
00137 _LONG_DESC_) \
00138 _TOP_RESULT_ = globus_i_gsi_gss_assist_error_chain_result(_TOP_RESULT_, \
00139 _ERRORTYPE_, \
00140 __FILE__, \
00141 _function_name_, \
00142 __LINE__, \
00143 NULL, \
00144 _LONG_DESC_)
00145
00146
00147
00148 extern char * globus_l_gsi_gss_assist_error_strings[];
00149
00150 globus_result_t
00151 globus_i_gsi_gss_assist_error_result(
00152 int error_type,
00153 const char * filename,
00154 const char * function_name,
00155 int line_number,
00156 const char * short_desc,
00157 const char * long_desc);
00158
00159 globus_result_t
00160 globus_i_gsi_gss_assist_error_chain_result(
00161 globus_result_t chain_result,
00162 int error_type,
00163 const char * filename,
00164 const char * function_name,
00165 int line_number,
00166 const char * short_desc,
00167 const char * long_desc);
00168
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172
00173 #endif
00174
00175 #endif