]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
python3 port for dckeytab module
authorNoel Power <noel.power@suse.com>
Fri, 2 Feb 2018 16:08:48 +0000 (16:08 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 23 Mar 2018 06:28:26 +0000 (07:28 +0100)
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>
source4/libnet/py_net_dckeytab.c
source4/libnet/wscript_build

index efb926770558a524037569a4d70c32320be04fa7..cf43da71c60ea0e33309edcbe6e1f599eb804a9f 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <Python.h>
 #include "includes.h"
+#include "python/py3compat.h"
 #include "py_net.h"
 #include "libnet_export_keytab.h"
 
@@ -74,28 +75,37 @@ static PyMethodDef export_keytab_method_table[] = {
  * 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,
@@ -103,4 +113,6 @@ void initdckeytab(void)
        if (ret != -1) {
                Py_DECREF(descr);
        }
+
+       return m;
 }
index e192eb59404f98b3e6b2cd70401f7afa5a598897..df0a097e520d3f8c8650a031ed5608915e76c02e 100644 (file)
@@ -18,9 +18,9 @@ for env in bld.gen_python_environments():
                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')
+               )