Line data Source code
1 : /* See https://www.python-ldap.org/ for details. */
2 :
3 : #include "common.h"
4 : #include "constants.h"
5 : #include "functions.h"
6 : #include "ldapcontrol.h"
7 :
8 : #include "LDAPObject.h"
9 :
10 : #if PY_MAJOR_VERSION >= 3
11 : PyMODINIT_FUNC PyInit__ldap(void);
12 : #else
13 : PyMODINIT_FUNC init_ldap(void);
14 : #endif
15 :
16 : #define _STR(x) #x
17 : #define STR(x) _STR(x)
18 :
19 : static char version_str[] = STR(LDAPMODULE_VERSION);
20 : static char author_str[] = STR(LDAPMODULE_AUTHOR);
21 : static char license_str[] = STR(LDAPMODULE_LICENSE);
22 :
23 : static void
24 1 : init_pkginfo( PyObject* m )
25 : {
26 1 : PyModule_AddStringConstant(m, "__version__", version_str);
27 1 : PyModule_AddStringConstant(m, "__author__", author_str);
28 1 : PyModule_AddStringConstant(m, "__license__", license_str);
29 1 : }
30 :
31 : /* dummy module methods */
32 : static PyMethodDef methods[] = {
33 : { NULL, NULL }
34 : };
35 :
36 : /* module initialisation */
37 :
38 :
39 : /* Common initialization code */
40 1 : PyObject* init_ldap_module(void)
41 : {
42 : PyObject *m, *d;
43 :
44 : /* Create the module and add the functions */
45 : #if PY_MAJOR_VERSION >= 3
46 : static struct PyModuleDef ldap_moduledef = {
47 : PyModuleDef_HEAD_INIT,
48 : "_ldap", /* m_name */
49 : "", /* m_doc */
50 : -1, /* m_size */
51 : methods, /* m_methods */
52 : };
53 1 : m = PyModule_Create(&ldap_moduledef);
54 : #else
55 : m = Py_InitModule("_ldap", methods);
56 : #endif
57 : /* Initialize LDAP class */
58 1 : if (PyType_Ready(&LDAP_Type) < 0) {
59 0 : Py_DECREF(m);
60 0 : return NULL;
61 : }
62 :
63 : /* Add some symbolic constants to the module */
64 1 : d = PyModule_GetDict(m);
65 :
66 1 : init_pkginfo(m);
67 :
68 1 : if (LDAPinit_constants(m) == -1) {
69 0 : return NULL;
70 : }
71 :
72 1 : LDAPinit_functions(d);
73 1 : LDAPinit_control(d);
74 :
75 : /* Check for errors */
76 1 : if (PyErr_Occurred())
77 0 : Py_FatalError("can't initialize module _ldap");
78 :
79 1 : return m;
80 : }
81 :
82 :
83 : #if PY_MAJOR_VERSION < 3
84 : PyMODINIT_FUNC init_ldap() {
85 : init_ldap_module();
86 : }
87 : #else
88 1 : PyMODINIT_FUNC PyInit__ldap() {
89 1 : return init_ldap_module();
90 : }
91 : #endif
|