globus_i_gsi_authz.h

00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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 /* DEBUG MACROS */
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 /* ERROR MACROS */
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 /* GLOBUS_DONT_DOCUMENT_INTERNAL */

Generated on 27 Oct 2014 for globus_authz by  doxygen 1.4.7