Download | Plain Text | No Line Numbers


  1. --- unbound-1.5.4.old/pythonmod/interface.i 2015-04-16 16:41:14.000000000 +0200
  2. +++ unbound-1.5.4/pythonmod/interface.i 2015-09-10 00:59:04.878670776 +0200
  3. @@ -160,11 +160,15 @@
  4. %}
  5.  
  6. %inline %{
  7. - PyObject* dnameAsStr(const char* dname) {
  8. + PyObject* dnameAsStr(PyObject *dname_py) {
  9. char buf[LDNS_MAX_DOMAINLEN+1];
  10. + Py_ssize_t len;
  11. + char *dname;
  12. + if (PyBytes_AsStringAndSize(dname_py, &dname, &len) == -1)
  13. + return NULL;
  14. buf[0] = '\0';
  15. dname_str((uint8_t*)dname, buf);
  16. - return PyBytes_FromString(buf);
  17. + return PyString_FromString(buf);
  18. }
  19. %}
  20.  
  21. --- unbound-1.5.4.old/pythonmod/pythonmod.c 2015-04-16 16:41:14.000000000 +0200
  22. +++ unbound-1.5.4/pythonmod/pythonmod.c 2015-09-08 00:27:09.905576839 +0200
  23. @@ -134,6 +134,9 @@
  24. if (!Py_IsInitialized())
  25. {
  26. #if PY_MAJOR_VERSION >= 3
  27. + PyImport_AppendInittab("_unboundmodule", SWIG_init);
  28. +#endif
  29. +#if PY_MAJOR_VERSION >= 3
  30. wchar_t progname[8];
  31. mbstowcs(progname, "unbound", 8);
  32. #else
  33. @@ -143,7 +146,9 @@
  34. Py_NoSiteFlag = 1;
  35. Py_Initialize();
  36. PyEval_InitThreads();
  37. +#if PY_MAJOR_VERSION < 3
  38. SWIG_init();
  39. +#endif
  40. pe->mainthr = PyEval_SaveThread();
  41. }
  42.  
  43. @@ -319,7 +324,7 @@
  44. pq = qstate->minfo[id] = malloc(sizeof(struct pythonmod_qstate));
  45.  
  46. /* Initialize per query data */
  47. - pq->data = Py_None;
  48. + pq->data = PyList_New(0);
  49. Py_INCREF(pq->data);
  50. }
  51.  
  52.