@@ -2,6 +2,7 @@ all: build
SRC=wpaspy.c
+.PHONY: build
build: $(SRC) setup.py
python setup.py build
@@ -44,8 +44,7 @@ static void wpaspy_close(struct wpaspy_obj *self)
self->ctrl = NULL;
}
- if (self->ob_type)
- self->ob_type->tp_free((PyObject *) self);
+ PyObject_Del(self);
}
@@ -193,6 +192,7 @@ static PyTypeObject wpaspy_ctrl = {
};
+#if PY_MAJOR_VERSION < 3
static PyMethodDef module_methods[] = {
{ NULL, NULL, 0, NULL }
};
@@ -212,3 +212,36 @@ PyMODINIT_FUNC initwpaspy(void)
PyModule_AddObject(mod, "Ctrl", (PyObject *) &wpaspy_ctrl);
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)
+ goto error;
+ if (PyModule_AddObject(mod, "error", wpaspy_error) < 0)
+ goto error;
+
+ return mod;
+error:
+ Py_DECREF(&wpaspy_ctrl);
+ Py_DECREF(wpaspy_error);
+ Py_DECREF(mod);
+ return NULL;
+}
+#endif