--- 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); }