#ifndef Py_GSS_H #define Py_GSS_H #ifdef __cplusplus extern C { #endif #include #define PyGSS_raiseGssError_NUM 0 #define PyGSS_raiseGssError_RETURN void * #define PyGSS_raiseGssError_PROTO (OM_uint32, OM_uint32) #define PyGSS_API_pointers 1 #ifdef PY_GSS_MODULE static PyGSS_raiseGssError_RETURN raiseGssError PyGSS_raiseGssError_PROTO; #else static void **PyGSS_API; #define raiseGssError \ (*(PyGSS_raiseGssError_RETURN (*)PyGSS_raiseGssError_PROTO) PyGSS_API[PyGSS_raiseGssError_NUM]) /* Return -1 and set exception on error, 0 on success. */ static int import_gss(void) { PyObject *module = PyImport_ImportModule("gss"); if (module != NULL) { PyObject *c_api_object = PyObject_GetAttrString(module, "_C_API"); if (c_api_object == NULL) return -1; if (PyCObject_Check(c_api_object)) PyGSS_API = (void **)PyCObject_AsVoidPtr(c_api_object); Py_DECREF(c_api_object); } return 0; } #endif #ifdef __cplusplus } #endif #endif /* !defined(Py_GSSMODULE_H) */