const isc_sockaddr_t *masteraddr,
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
dns_tsigkey_t *tsigkey, isc_mem_t *mctx, isc_nm_t *netmgr,
- isc_task_t *task, dns_xfrindone_t done,
- dns_xfrin_ctx_t **xfrp);
+ dns_xfrindone_t done, dns_xfrin_ctx_t **xfrp);
/*%<
* Attempt to start an incoming zone transfer of 'zone'
* from 'masteraddr', creating a dns_xfrin_ctx_t object to
* manage it. Attach '*xfrp' to the newly created object.
*
- * Iff ISC_R_SUCCESS is returned, '*done' is guaranteed to be
- * called in the context of 'task', with 'zone' and a result
- * code as arguments when the transfer finishes.
+ * Iff ISC_R_SUCCESS is returned, '*done' is called with
+ * 'zone' and a result code as arguments when the transfer finishes.
*
* Requires:
*\li 'xfrtype' is dns_rdatatype_axfr, dns_rdatatype_ixfr
#include <stdbool.h>
#include <isc/mem.h>
+#include <isc/netmgr.h>
#include <isc/print.h>
#include <isc/random.h>
#include <isc/string.h> /* Required for HP/UX (and others?) */
-#include <isc/task.h>
#include <isc/util.h>
#include <dns/callbacks.h>
isc_refcount_t refs;
- isc_task_t *task;
isc_nm_t *netmgr;
isc_refcount_t connects; /*%< Connect in progress */
*/
static void
-xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_task_t *task,
- isc_nm_t *netmgr, dns_name_t *zonename, dns_rdataclass_t rdclass,
+xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_nm_t *netmgr,
+ dns_name_t *zonename, dns_rdataclass_t rdclass,
dns_rdatatype_t reqtype, const isc_sockaddr_t *masteraddr,
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
dns_tsigkey_t *tsigkey, dns_xfrin_ctx_t **xfrp);
const isc_sockaddr_t *masteraddr,
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
dns_tsigkey_t *tsigkey, isc_mem_t *mctx, isc_nm_t *netmgr,
- isc_task_t *task, dns_xfrindone_t done,
- dns_xfrin_ctx_t **xfrp) {
+ dns_xfrindone_t done, dns_xfrin_ctx_t **xfrp) {
dns_name_t *zonename = dns_zone_getorigin(zone);
dns_xfrin_ctx_t *xfr = NULL;
isc_result_t result;
REQUIRE(db != NULL);
}
- xfrin_create(mctx, zone, db, task, netmgr, zonename,
- dns_zone_getclass(zone), xfrtype, masteraddr, sourceaddr,
- dscp, tsigkey, &xfr);
+ xfrin_create(mctx, zone, db, netmgr, zonename, dns_zone_getclass(zone),
+ xfrtype, masteraddr, sourceaddr, dscp, tsigkey, &xfr);
if (db != NULL) {
xfr->zone_had_db = true;
if (xfr->readhandle == NULL) {
return;
}
+
isc_nm_cancelread(xfr->readhandle);
isc_nmhandle_detach(&xfr->readhandle);
}
}
static void
-xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_task_t *task,
- isc_nm_t *netmgr, dns_name_t *zonename, dns_rdataclass_t rdclass,
+xfrin_create(isc_mem_t *mctx, dns_zone_t *zone, dns_db_t *db, isc_nm_t *netmgr,
+ dns_name_t *zonename, dns_rdataclass_t rdclass,
dns_rdatatype_t reqtype, const isc_sockaddr_t *masteraddr,
const isc_sockaddr_t *sourceaddr, isc_dscp_t dscp,
dns_tsigkey_t *tsigkey, dns_xfrin_ctx_t **xfrp) {
isc_mem_attach(mctx, &xfr->mctx);
dns_zone_iattach(zone, &xfr->zone);
- isc_task_attach(task, &xfr->task);
dns_name_init(&xfr->name, NULL);
if (db != NULL) {
isc_nmhandle_detach(&xfr->sendhandle);
}
- if (xfr->task != NULL) {
- isc_task_detach(&xfr->task);
- }
-
if (xfr->tsigkey != NULL) {
dns_tsigkey_detach(&xfr->tsigkey);
}