python: Port samba.security to Python 3 compatible form.
authorLumir Balhar <lbalhar@redhat.com>
Mon, 22 May 2017 13:21:08 +0000 (15:21 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 6 Sep 2017 09:35:18 +0000 (11:35 +0200)
Signed-off-by: Lumir Balhar <lbalhar@redhat.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
libcli/security/pysecurity.c
libcli/security/wscript_build

index 5dbf95cfac2d524bab2275ab5463b8fabcd45d0f..72058424d993e584f1f856223c9c0292429c7053 100644 (file)
 */
 
 #include <Python.h>
+#include "python/py3compat.h"
 #include "includes.h"
 #include "libcli/util/pyerrors.h"
 #include "libcli/security/security.h"
 #include "pytalloc.h"
 
-void initsecurity(void);
-
 static PyObject *py_se_access_check(PyObject *module, PyObject *args, PyObject *kwargs)
 {
        NTSTATUS nt_status;
@@ -65,7 +64,7 @@ static PyObject *py_se_access_check(PyObject *module, PyObject *args, PyObject *
                PyErr_NTSTATUS_IS_ERR_RAISE(nt_status);
        }
 
-       return PyLong_FromLong(access_granted);
+       return PyInt_FromLong(access_granted);
 }
 
 static PyMethodDef py_security_methods[] = {
@@ -74,12 +73,21 @@ static PyMethodDef py_security_methods[] = {
        { NULL },
 };
 
-void initsecurity(void)
+static struct PyModuleDef moduledef = {
+       PyModuleDef_HEAD_INIT,
+       .m_name = "security",
+       .m_doc = "Security support.",
+       .m_size = -1,
+       .m_methods = py_security_methods,
+};
+
+MODULE_INIT_FUNC(security)
 {
        PyObject *m;
 
-       m = Py_InitModule3("security", py_security_methods,
-                          "Security support.");
+       m = PyModule_Create(&moduledef);
        if (m == NULL)
-               return;
+               return NULL;
+
+       return m;
 }
index b529ec86de23010d2068139ab69acf4d73f57fbe..6a6b0129d14f681e025d0e37301f4e1f24b82377 100644 (file)
@@ -7,8 +7,10 @@ bld.SAMBA_LIBRARY('samba-security',
                   deps='talloc ndr NDR_SECURITY'
                   )
 
-bld.SAMBA_PYTHON('pysecurity',
-                 source='pysecurity.c',
-                 deps='samba-security pytalloc-util',
-                 realname='samba/security.so'
-                 )
+for env in bld.gen_python_environments():
+    pytalloc_util = bld.pyembed_libname('pytalloc-util')
+    bld.SAMBA_PYTHON('pysecurity',
+                     source='pysecurity.c',
+                     deps='samba-security %s' % pytalloc_util,
+                     realname='samba/security.so'
+                     )