globus_authz  3.20
 All Files Functions Variables Enumerations Enumerator Groups Pages
globus_i_gsi_authz.h
1 
2 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
3 
9 #include "globus_common.h"
10 #include "globus_module.h"
11 #include "globus_callback.h"
13 #include "globus_gsi_authz.h"
14 #include "globus_error_string.h"
15 
16 /* DEBUG MACROS */
17 
18 #ifdef BUILD_DEBUG
19 
20 extern int globus_i_gsi_authz_debug_level;
21 extern FILE * globus_i_gsi_authz_debug_fstream;
22 
23 #define GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_) \
24  (globus_i_gsi_authz_debug_level >= (_LEVEL_))
25 
26 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
27  { \
28  if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
29  { \
30  globus_libc_fprintf _MESSAGE_; \
31  } \
32  }
33 
34 
35 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
36  { \
37  if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
38  { \
39  char * _tmp_str_ = \
40  globus_common_create_nstring _MESSAGE_; \
41  globus_libc_fprintf(globus_i_gsi_authz_debug_fstream, \
42  _tmp_str_); \
43  globus_libc_free(_tmp_str_); \
44  } \
45  }
46 
47 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
48  { \
49  if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
50  { \
51  globus_libc_fprintf(globus_i_gsi_authz_debug_fstream, _MESSAGE_); \
52  } \
53  }
54 
55 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) \
56  { \
57  if (GLOBUS_I_GSI_AUTHZ_DEBUG(_LEVEL_)) \
58  { \
59 pp _OBJ_NAME_##_print_fp(globus_i_gsi_authz_debug_fstream, _OBJ_); \
60  } \
61  }
62 
63 #else
64 
65 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
66 #define GLOBUS_I_GSI_AUTHZ_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
67 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT(_LEVEL_, _MESSAGE_) {}
68 #define GLOBUS_I_GSI_AUTHZ_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) {}
69 
70 #endif
71 
72 #define GLOBUS_I_GSI_AUTHZ_DEBUG_ENTER \
73  GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF( \
74  2, (globus_i_gsi_authz_debug_fstream, \
75  "%s entering\n", _function_name_))
76 
77 #define GLOBUS_I_GSI_AUTHZ_DEBUG_EXIT \
78  GLOBUS_I_GSI_AUTHZ_DEBUG_FPRINTF( \
79  2, (globus_i_gsi_authz_debug_fstream, \
80  "%s exiting\n", _function_name_))
81 
82 
83 
84 /* ERROR MACROS */
85 
86 extern char * globus_l_gsi_authz_error_strings[];
87 
88 #define GLOBUS_GSI_AUTH_HANDLE_MALLOC_ERROR(_LENGTH_) \
89  globus_error_put(globus_error_wrap_errno_error( \
90  GLOBUS_GSI_AUTHZ_MODULE, \
91  errno, \
92  GLOBUS_GSI_AUTHZ_ERROR_ERRNO, \
93  __FILE__, \
94  _function_name_, \
95  __LINE__, \
96  "Could not allocate enough memory: %d bytes", \
97  (_LENGTH_)))
98 
99 
100 #define GLOBUS_GSI_AUTHZ_ERROR_NULL_VALUE(_WHAT_) \
101  globus_error_put(globus_error_construct_error( \
102  GLOBUS_GSI_AUTHZ_MODULE, \
103  NULL, \
104  GLOBUS_GSI_AUTHZ_ERROR_BAD_PARAMETER, \
105  __FILE__, \
106  _function_name_, \
107  __LINE__, \
108  "%s %s is null", \
109  globus_l_gsi_authz_error_strings[GLOBUS_GSI_AUTHZ_ERROR_BAD_PARAMETER]\
110  , (_WHAT_)))
111 
112 #define GLOBUS_GSI_AUTHZ_ERROR_WITH_CALLOUT(_RESULT_) \
113  globus_error_put(globus_error_construct_error( \
114  GLOBUS_GSI_AUTHZ_MODULE, \
115  globus_error_get(_RESULT_), \
116  GLOBUS_GSI_AUTHZ_ERROR_CALLOUT, \
117  __FILE__, \
118  _function_name_, \
119  __LINE__, \
120  "%s", \
121  globus_l_gsi_authz_error_strings[GLOBUS_GSI_AUTHZ_ERROR_CALLOUT]))
122 
123 typedef struct globus_l_gsi_authz_cb_arg_s
124 {
125  globus_gsi_authz_handle_t handle;
126  void * arg;
127  globus_gsi_authz_cb_t callback;
128 } globus_l_gsi_authz_cb_arg_t;
129 
130 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
GSI Authorization API.
Globus GSI Authorization Library Constants.