X-Git-Url: https://git.distorted.org.uk/~mdw/mLib-python/blobdiff_plain/8fdfc3953c7444ffa4e65a13cc83a16418369678..b170d65aecec439b1ca2dd52f60f47f547d365e3:/bres.pyx diff --git a/bres.pyx b/bres.pyx index 162ff02..30aac12 100644 --- a/bres.pyx +++ b/bres.pyx @@ -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 = []