X-Git-Url: https://git.distorted.org.uk/~mdw/mLib-python/blobdiff_plain/579d01693c86259110fe7a2c2a6f005f1bdbad5b..d8d81d1b049836f7d4fae7b0077a8ce9e2fc43ac:/bres.pyx diff --git a/bres.pyx b/bres.pyx index 162ff02..0ddfb11 100644 --- a/bres.pyx +++ b/bres.pyx @@ -15,12 +15,12 @@ # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. -# +# # mLib/Python is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with mLib/Python; if not, write to the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -32,6 +32,10 @@ cdef class SelResolve: cdef _failed def __init__(me, *hunoz, **hukairz): raise TypeError, 'abstract class' + def __dealloc__(me): + if me._activep: + me._dead() + bres_abort(&me.r) property activep: def __get__(me): return _tobool(me._activep) @@ -68,10 +72,10 @@ cdef class SelResolve: cdef class SelResolveByName (SelResolve): def __new__(me, char *name, resolvedproc = None, failedproc = None, *hunoz, **hukairz): - bres_byname(&me.r, name, _resfunc, me) me._resolved = _checkcallable(resolvedproc, 'resolved proc') me._failed = _checkcallable(failedproc, 'failed proc') me._activep = 1 + bres_byname(&me.r, name, _resfunc, me) def __init__(me, name, resolvedproc = None, failedproc = None): pass @@ -81,10 +85,10 @@ cdef class SelResolveByAddr (SelResolve): cdef in_addr ia if not inet_aton(addr, &ia): raise TypeError, 'bad IP address' - bres_byaddr(&me.r, ia, _resfunc, me) me._resolved = _checkcallable(resolvedproc, 'resolved proc') me._failed = _checkcallable(failedproc, 'failed proc') me._activep = 1 + bres_byaddr(&me.r, ia, _resfunc, me) def __init__(me, addr, resolvedproc = None, failedproc = None): pass @@ -94,7 +98,7 @@ cdef void _resfunc(hostent *h, void *arg): r = arg r._dead() if h is NULL: - r.failed(r) + r.failed() else: alias = [] addr = []