Report context allocation error.

This commit is contained in:
Stuart Gathman
2005-06-24 04:20:07 +00:00
parent 2276762c52
commit e9f6773096
+9 -3
View File
@@ -34,6 +34,9 @@ $ python setup.py help
libraries=["milter","smutil","resolv"] libraries=["milter","smutil","resolv"]
* $Log$ * $Log$
* Revision 1.4 2005/06/24 04:12:43 customdesigned
* Remove unused name argument to generic wrappers.
*
* Revision 1.3 2005/06/24 03:57:35 customdesigned * Revision 1.3 2005/06/24 03:57:35 customdesigned
* Handle close called before connect. * Handle close called before connect.
* *
@@ -200,7 +203,7 @@ $ python setup.py help
/* Yes, these are static. If you need multiple different callbacks, */ /* Yes, these are static. If you need multiple different callbacks, */
/* it's cleaner to use multiple filters. */ /* it's cleaner to use multiple filters, or convert to OO method calls. */
static PyObject *connect_callback = NULL; static PyObject *connect_callback = NULL;
static PyObject *helo_callback = NULL; static PyObject *helo_callback = NULL;
static PyObject *envfrom_callback = NULL; static PyObject *envfrom_callback = NULL;
@@ -245,8 +248,11 @@ _get_context(SMFICTX *ctx) {
PyEval_AcquireThread(t); /* lock interp */ PyEval_AcquireThread(t); /* lock interp */
self = PyObject_New(milter_ContextObject,&milter_ContextType); self = PyObject_New(milter_ContextObject,&milter_ContextType);
if (!self) { if (!self) {
/* Can't pass on exception since we are called from libmilter */ /* Report and clear exception since we are called from libmilter */
PyErr_Clear(); if (PyErr_Occurred()) {
PyErr_Print();
PyErr_Clear();
}
PyThreadState_Clear(t); PyThreadState_Clear(t);
PyEval_ReleaseThread(t); PyEval_ReleaseThread(t);
PyThreadState_Delete(t); PyThreadState_Delete(t);