if (result != ISC_R_SUCCESS) {
ns_client_putrdataset(client, &tmprdataset);
isc_nmhandle_detach(handlep);
+ recursionquotatype_detach(client, recursion_type);
}
}
if (sigrdataset != NULL) {
ns_client_putrdataset(client, &sigrdataset);
}
+ recursionquotatype_detach(client, RECTYPE_NORMAL);
}
/*
client->manager->task, query_hookresume, client,
&client->query.hookactx);
if (result != ISC_R_SUCCESS) {
- goto cleanup;
+ goto cleanup_and_detach_from_quota;
}
/*
isc_nmhandle_attach(client->handle, &HANDLE_RECTYPE_HOOK(client));
return (ISC_R_SUCCESS);
+cleanup_and_detach_from_quota:
+ recursionquotatype_detach(client, RECTYPE_HOOK);
cleanup:
/*
* If we fail, send SERVFAIL now. It may be better to let the caller