summaryrefslogtreecommitdiff
path: root/source3/libsmb/pylibsmb.c
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2018-02-05 11:34:15 +0000
committerAndrew Bartlett <abartlet@samba.org>2018-04-05 08:59:09 +0200
commit94fd3cfa79e65128f86cd109d2ae4ee1e563bc40 (patch)
treec47102be90afc11328060dcf6030a4176e546d33 /source3/libsmb/pylibsmb.c
parent22d563b13eb122197bdf0b24937a78aec3b260af (diff)
downloadsamba-94fd3cfa79e65128f86cd109d2ae4ee1e563bc40.tar.gz
python3 port for libsmb_samba_internal module
Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'source3/libsmb/pylibsmb.c')
-rw-r--r--source3/libsmb/pylibsmb.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/source3/libsmb/pylibsmb.c b/source3/libsmb/pylibsmb.c
index d2167e917d6..311820c7d66 100644
--- a/source3/libsmb/pylibsmb.c
+++ b/source3/libsmb/pylibsmb.c
@@ -20,6 +20,7 @@
#include <Python.h>
#include "includes.h"
+#include "python/py3compat.h"
#include "libsmb/libsmb.h"
#include "libcli/security/security.h"
#include "system/select.h"
@@ -576,7 +577,7 @@ static void py_cli_state_dealloc(struct py_cli_state *self)
cli_shutdown(self->cli);
self->cli = NULL;
}
- self->ob_type->tp_free((PyObject *)self);
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
static PyObject *py_cli_create(struct py_cli_state *self, PyObject *args,
@@ -875,7 +876,7 @@ static PyMethodDef py_cli_state_methods[] = {
};
static PyTypeObject py_cli_state_type = {
- PyObject_HEAD_INIT(NULL)
+ PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = "libsmb_samba_internal.Conn",
.tp_basicsize = sizeof(struct py_cli_state),
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
@@ -891,18 +892,29 @@ static PyMethodDef py_libsmb_methods[] = {
};
void initlibsmb_samba_internal(void);
-void initlibsmb_samba_internal(void)
+
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "libsmb_samba_internal",
+ .m_doc = "libsmb wrapper",
+ .m_size = -1,
+ .m_methods = py_libsmb_methods,
+};
+
+MODULE_INIT_FUNC(libsmb_samba_internal)
{
- PyObject *m;
+ PyObject *m = NULL;
talloc_stackframe();
- m = Py_InitModule3("libsmb_samba_internal", py_libsmb_methods,
- "libsmb wrapper");
-
+ m = PyModule_Create(&moduledef);
+ if (m == NULL) {
+ return m;
+ }
if (PyType_Ready(&py_cli_state_type) < 0) {
- return;
+ return NULL;
}
Py_INCREF(&py_cli_state_type);
PyModule_AddObject(m, "Conn", (PyObject *)&py_cli_state_type);
+ return m;
}