00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
00018
00024 #include "globus_common.h"
00025 #include "globus_module.h"
00026 #include "globus_callback.h"
00027 #include "globus_gsi_authz_constants.h"
00028 #include "globus_gsi_authz.h"
00029 #include "globus_error_string.h"
00030
00031
00032
00033 #ifdef BUILD_DEBUG
00034
00035 extern int globus_i_gsi_authz_debug_level;
00036 extern FILE * globus_i_gsi_authz_debug_fstream;
00037
00038 #define GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_) \
00039 (globus_i_gsi_authz_debug_level >= (_LEVEL_))
00040
00041 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
00042 { \
00043 if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
00044 { \
00045 globus_libc_fprintf _MESSAGE_; \
00046 } \
00047 }
00048
00049
00050 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
00051 { \
00052 if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
00053 { \
00054 char * _tmp_str_ = \
00055 globus_common_create_nstring _MESSAGE_; \
00056 globus_libc_fprintf(globus_i_gsi_authz_debug_fstream, \
00057 _tmp_str_); \
00058 globus_libc_free(_tmp_str_); \
00059 } \
00060 }
00061
00062 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
00063 { \
00064 if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
00065 { \
00066 globus_libc_fprintf(globus_i_gsi_authz_debug_fstream, _MESSAGE_); \
00067 } \
00068 }
00069
00070 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) \
00071 { \
00072 if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
00073 { \
00074 pp _OBJ_NAME_##_print_fp(globus_i_gsi_authz_debug_fstream, _OBJ_); \
00075 } \
00076 }
00077
00078 #else
00079
00080 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
00081 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
00082 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT(_LEVEL_, _MESSAGE_) {}
00083 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) {}
00084
00085 #endif
00086
00087 #define GLOBUS_I_GSI_AUTHZ_DEBUG_ENTER \
00088 GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF( \
00089 2, (globus_i_gsi_authz_debug_fstream, \
00090 "%s entering\n", _function_name_))
00091
00092 #define GLOBUS_I_GSI_AUTHZ_DEBUG_EXIT \
00093 GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF( \
00094 2, (globus_i_gsi_authz_debug_fstream, \
00095 "%s exiting\n", _function_name_))
00096
00097
00098
00099
00100
00101 extern char * globus_l_gsi_authz_error_strings[];
00102
00103 #define GLOBUS_GSI_AUTH_HANDLE_MALLOC_ERROR(_LENGTH_) \
00104 globus_error_put(globus_error_wrap_errno_error( \
00105 GLOBUS_GSI_AUTHZ_MODULE, \
00106 errno, \
00107 GLOBUS_GSI_AUTHZ_ERROR_ERRNO, \
00108 __FILE__, \
00109 _function_name_, \
00110 __LINE__, \
00111 "Could not allocate enough memory: %d bytes", \
00112 (_LENGTH_)))
00113
00114
00115 #define GLOBUS_GSI_AUTHZ_ERROR_NULL_VALUE(_WHAT_) \
00116 globus_error_put(globus_error_construct_error( \
00117 GLOBUS_GSI_AUTHZ_MODULE, \
00118 NULL, \
00119 GLOBUS_GSI_AUTHZ_ERROR_BAD_PARAMETER, \
00120 __FILE__, \
00121 _function_name_, \
00122 __LINE__, \
00123 "%s %s is null", \
00124 globus_l_gsi_authz_error_strings[GLOBUS_GSI_AUTHZ_ERROR_BAD_PARAMETER]\
00125 , (_WHAT_)))
00126
00127 #define GLOBUS_GSI_AUTHZ_ERROR_WITH_CALLOUT(_RESULT_) \
00128 globus_error_put(globus_error_construct_error( \
00129 GLOBUS_GSI_AUTHZ_MODULE, \
00130 globus_error_get(_RESULT_), \
00131 GLOBUS_GSI_AUTHZ_ERROR_CALLOUT, \
00132 __FILE__, \
00133 _function_name_, \
00134 __LINE__, \
00135 "%s", \
00136 globus_l_gsi_authz_error_strings[GLOBUS_GSI_AUTHZ_ERROR_CALLOUT]))
00137
00138 typedef struct globus_l_gsi_authz_cb_arg_s
00139 {
00140 globus_gsi_authz_handle_t handle;
00141 void * arg;
00142 globus_gsi_authz_cb_t callback;
00143 } globus_l_gsi_authz_cb_arg_t;
00144
00145 #endif