summaryrefslogtreecommitdiff
path: root/libgpo/pygpo.c
diff options
context:
space:
mode:
authorDavid Mulder <dmulder@suse.com>2018-01-30 12:31:42 -0700
committerAndrew Bartlett <abartlet@samba.org>2018-03-23 07:28:25 +0100
commita032ea5bf842da35099930008e308f35668d7caf (patch)
treefb368afa79944181877794b8109c13b900e9c852 /libgpo/pygpo.c
parentbb88292cee5289742b72ff0249f01d527920301f (diff)
downloadsamba-a032ea5bf842da35099930008e308f35668d7caf.tar.gz
libgpo: port samba.gpo to python3
Signed-off-by: David Mulder <dmulder@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'libgpo/pygpo.c')
-rw-r--r--libgpo/pygpo.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/libgpo/pygpo.c b/libgpo/pygpo.c
index b6b53b76212..ac6e3237a82 100644
--- a/libgpo/pygpo.c
+++ b/libgpo/pygpo.c
@@ -27,6 +27,7 @@
#include "librpc/rpc/pyrpc_util.h"
#include "auth/credentials/pycredentials.h"
#include "libcli/util/pyerrors.h"
+#include "python/py3compat.h"
/* A Python C API module to use LIBGPO */
@@ -37,7 +38,7 @@ static PyObject* GPO_get_##ATTR(PyObject *self, void *closure) \
= pytalloc_get_ptr(self); \
\
if (gpo_ptr->ATTR) \
- return PyString_FromString(gpo_ptr->ATTR); \
+ return PyStr_FromString(gpo_ptr->ATTR); \
else \
return Py_None; \
}
@@ -110,7 +111,7 @@ static PyObject *py_gpo_get_unix_path(PyObject *self, PyObject *args,
goto out;
}
- ret = PyString_FromString(unix_path);
+ ret = PyStr_FromString(unix_path);
out:
return ret;
@@ -475,7 +476,7 @@ static PyMethodDef ADS_methods[] = {
{ "connect", (PyCFunction)py_ads_connect, METH_NOARGS,
"Connect to the LDAP server" },
#ifdef HAVE_ADS
- { "get_gpo_list", (PyCFunction)py_ads_get_gpo_list, METH_KEYWORDS,
+ { "get_gpo_list", (PyCFunction)py_ads_get_gpo_list, METH_VARARGS | METH_KEYWORDS,
NULL },
#endif
{ NULL }
@@ -499,34 +500,45 @@ static PyMethodDef py_gpo_methods[] = {
{NULL}
};
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "gpo",
+ .m_doc = "libgpo python bindings",
+ .m_size = -1,
+ .m_methods = py_gpo_methods,
+};
+
/* Will be called by python when loading this module */
-void initgpo(void)
+void initgpo(void);
+
+MODULE_INIT_FUNC(gpo)
{
PyObject *m;
debug_setup_talloc_log();
/* Instantiate the types */
- m = Py_InitModule3("gpo", py_gpo_methods, "libgpo python bindings");
+ m = PyModule_Create(&moduledef);
if (m == NULL) {
- return;
+ return m;
}
PyModule_AddObject(m, "version",
- PyString_FromString(SAMBA_VERSION_STRING));
+ PyStr_FromString(SAMBA_VERSION_STRING));
if (PyType_Ready(&ads_ADSType) < 0) {
- return;
+ return m;
}
PyModule_AddObject(m, "ADS_STRUCT", (PyObject *)&ads_ADSType);
if (pytalloc_BaseObject_PyType_Ready(&GPOType) < 0) {
- return;
+ return m;
}
Py_INCREF((PyObject *)(void *)&GPOType);
PyModule_AddObject(m, "GROUP_POLICY_OBJECT",
(PyObject *)&GPOType);
+ return m;
}