Download | Plain Text | Line Numbers
--- unbound-1.5.4.old/pythonmod/interface.i 2015-04-16 16:41:14.000000000 +0200
+++ unbound-1.5.4/pythonmod/interface.i 2015-09-10 00:59:04.878670776 +0200
@@ -160,11 +160,15 @@
%}
%inline %{
- PyObject* dnameAsStr(const char* dname) {
+ PyObject* dnameAsStr(PyObject *dname_py) {
char buf[LDNS_MAX_DOMAINLEN+1];
+ Py_ssize_t len;
+ char *dname;
+ if (PyBytes_AsStringAndSize(dname_py, &dname, &len) == -1)
+ return NULL;
buf[0] = '\0';
dname_str((uint8_t*)dname, buf);
- return PyBytes_FromString(buf);
+ return PyString_FromString(buf);
}
%}
--- unbound-1.5.4.old/pythonmod/pythonmod.c 2015-04-16 16:41:14.000000000 +0200
+++ unbound-1.5.4/pythonmod/pythonmod.c 2015-09-08 00:27:09.905576839 +0200
@@ -134,6 +134,9 @@
if (!Py_IsInitialized())
{
#if PY_MAJOR_VERSION >= 3
+ PyImport_AppendInittab("_unboundmodule", SWIG_init);
+#endif
+#if PY_MAJOR_VERSION >= 3
wchar_t progname[8];
mbstowcs(progname, "unbound", 8);
#else
@@ -143,7 +146,9 @@
Py_NoSiteFlag = 1;
Py_Initialize();
PyEval_InitThreads();
+#if PY_MAJOR_VERSION < 3
SWIG_init();
+#endif
pe->mainthr = PyEval_SaveThread();
}
@@ -319,7 +324,7 @@
pq = qstate->minfo[id] = malloc(sizeof(struct pythonmod_qstate));
/* Initialize per query data */
- pq->data = Py_None;
+ pq->data = PyList_New(0);
Py_INCREF(pq->data);
}