#include <Python.h>
#include "includes.h"
+#include "python/py3compat.h"
#include "py_net.h"
#include "libnet_export_keytab.h"
* the global module table even if we don't really need that record. Thus, we initialize
* dckeytab module but never use it.
* */
-void initdckeytab(void)
+void initdckeytab(void);
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "dckeytab",
+ .m_doc = "dckeytab",
+ .m_size = -1,
+ .m_methods = NULL
+};
+
+MODULE_INIT_FUNC(dckeytab)
{
- PyObject *m;
+ PyObject *m = NULL;
PyObject *Net;
PyObject *descr;
int ret;
- m = Py_InitModule3("dckeytab", NULL, NULL);
+ m = PyModule_Create(&moduledef);
if (m == NULL)
- return;
+ return m;
m = PyImport_ImportModule("samba.net");
if (m == NULL)
- return;
+ return m;
Net = (PyObject *)PyObject_GetAttrString(m, "Net");
if (Net == NULL)
- return;
+ return m;
descr = PyDescr_NewMethod((PyTypeObject*)Net, &export_keytab_method_table[0]);
if (descr == NULL)
- return;
+ return m;
ret = PyDict_SetItemString(((PyTypeObject*)Net)->tp_dict,
export_keytab_method_table[0].ml_name,
if (ret != -1) {
Py_DECREF(descr);
}
+
+ return m;
}
realname='samba/net.so'
)
-bld.SAMBA_PYTHON('python_dckeytab',
- source='py_net_dckeytab.c libnet_export_keytab.c',
- deps='pyrpc_util db-glue krb5 com_err',
- realname='samba/dckeytab.so',
- enabled=bld.CONFIG_SET('AD_DC_BUILD_IS_ENABLED')
- )
+ bld.SAMBA_PYTHON('python_dckeytab',
+ source='py_net_dckeytab.c libnet_export_keytab.c',
+ deps='pyrpc_util db-glue krb5 com_err',
+ realname='samba/dckeytab.so',
+ enabled=bld.CONFIG_SET('AD_DC_BUILD_IS_ENABLED')
+ )