wpaspy: Allow building with python3
Add the necessary modified module registration code to allow building wpaspy with python3. Also clean up the wpaspy_close() function to not poke into the python version specific details. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
45a1bfd956
commit
27fb429e95
2 changed files with 34 additions and 2 deletions
|
@ -2,6 +2,7 @@ all: build
|
||||||
|
|
||||||
SRC=wpaspy.c
|
SRC=wpaspy.c
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
build: $(SRC) setup.py
|
build: $(SRC) setup.py
|
||||||
python setup.py build
|
python setup.py build
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,7 @@ static void wpaspy_close(struct wpaspy_obj *self)
|
||||||
self->ctrl = NULL;
|
self->ctrl = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self->ob_type)
|
PyObject_Del(self);
|
||||||
self->ob_type->tp_free((PyObject *) self);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,6 +192,7 @@ static PyTypeObject wpaspy_ctrl = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if PY_MAJOR_VERSION < 3
|
||||||
static PyMethodDef module_methods[] = {
|
static PyMethodDef module_methods[] = {
|
||||||
{ NULL, NULL, 0, NULL }
|
{ NULL, NULL, 0, NULL }
|
||||||
};
|
};
|
||||||
|
@ -212,3 +212,34 @@ PyMODINIT_FUNC initwpaspy(void)
|
||||||
PyModule_AddObject(mod, "Ctrl", (PyObject *) &wpaspy_ctrl);
|
PyModule_AddObject(mod, "Ctrl", (PyObject *) &wpaspy_ctrl);
|
||||||
PyModule_AddObject(mod, "error", wpaspy_error);
|
PyModule_AddObject(mod, "error", wpaspy_error);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static struct PyModuleDef wpaspy_def = {
|
||||||
|
PyModuleDef_HEAD_INIT,
|
||||||
|
"wpaspy",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
PyMODINIT_FUNC initwpaspy(void)
|
||||||
|
{
|
||||||
|
PyObject *mod;
|
||||||
|
|
||||||
|
mod = PyModule_Create(&wpaspy_def);
|
||||||
|
if (!mod)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
wpaspy_error = PyErr_NewException("wpaspy.error", NULL, NULL);
|
||||||
|
|
||||||
|
Py_INCREF(&wpaspy_ctrl);
|
||||||
|
Py_INCREF(wpaspy_error);
|
||||||
|
|
||||||
|
if (PyModule_AddObject(mod, "Ctrl", (PyObject *) &wpaspy_ctrl) < 0 ||
|
||||||
|
PyModule_AddObject(mod, "error", wpaspy_error) < 0) {
|
||||||
|
Py_DECREF(&wpaspy_ctrl);
|
||||||
|
Py_DECREF(wpaspy_error);
|
||||||
|
Py_DECREF(mod);
|
||||||
|
mod = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mod;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue