From: Philipp Serr Date: Sat, 21 Jan 2017 14:47:54 +0000 (+0100) Subject: Initialize per-query qdata and per-module mod_env X-Git-Tag: release-1.9.3rc1~29^2^2~1^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F4%2Fhead;p=thirdparty%2Funbound.git Initialize per-query qdata and per-module mod_env The python module used to assign None to the per-query (qdata argument) and per-module (mod_env variable) data stores. Hence, there was no obvious way for python code to use these data stores. This commit initializes both data stores with a dict instance. --- diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index a668ecc23..02908af56 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -317,8 +317,7 @@ int pythonmod_init(struct module_env* env, int id) /* Load file */ pe->module = PyImport_AddModule("__main__"); pe->dict = PyModule_GetDict(pe->module); - pe->data = Py_None; - Py_INCREF(pe->data); + pe->data = PyDict_New(); PyModule_AddObject(pe->module, "mod_env", pe->data); /* TODO: deallocation of pe->... if an error occurs */ @@ -485,8 +484,7 @@ void pythonmod_operate(struct module_qstate* qstate, enum module_ev event, pq = qstate->minfo[id] = malloc(sizeof(struct pythonmod_qstate)); /* Initialize per query data */ - pq->data = Py_None; - Py_INCREF(pq->data); + pq->data = PyDict_New(); } /* Call operate */