]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
refactor delzone to use loop callbacks
authorEvan Hunt <each@isc.org>
Thu, 27 Oct 2022 06:43:45 +0000 (23:43 -0700)
committerOndřej Surý <ondrej@isc.org>
Thu, 16 Feb 2023 16:51:55 +0000 (17:51 +0100)
the rmzone() function is now posted using isc_async_run().

dns_zone_gettask() is no longer used anywhere, and has been
removed.

bin/named/server.c
lib/dns/include/dns/zone.h
lib/dns/zone.c

index 3048eb6116ae80d4eb2b77b27a64ab6fcc73f277..a1b93e1824b485db818b2c8fa8f98f8c43a6f073 100644 (file)
@@ -14244,8 +14244,8 @@ typedef struct {
  * Carry out a zone deletion scheduled by named_server_delzone().
  */
 static void
-rmzone(isc_task_t *task, isc_event_t *event) {
-       ns_dzctx_t *dz = (ns_dzctx_t *)event->ev_arg;
+rmzone(void *arg) {
+       ns_dzctx_t *dz = (ns_dzctx_t *)arg;
        dns_zone_t *zone = NULL, *raw = NULL, *mayberaw = NULL;
        dns_catz_zone_t *catz = NULL;
        char zonename[DNS_NAME_FORMATSIZE];
@@ -14261,8 +14261,6 @@ rmzone(isc_task_t *task, isc_event_t *event) {
 
        REQUIRE(dz != NULL);
 
-       isc_event_free(&event);
-
        /* Dig out configuration for this zone */
        zone = dz->zone;
        view = dns_zone_getview(zone);
@@ -14398,7 +14396,6 @@ rmzone(isc_task_t *task, isc_event_t *event) {
        }
        dns_zone_detach(&zone);
        isc_mem_put(named_g_mctx, dz, sizeof(*dz));
-       isc_task_detach(&task);
 }
 
 /*
@@ -14417,8 +14414,6 @@ named_server_delzone(named_server_t *server, isc_lex_t *lex,
        const char *ptr;
        bool added;
        ns_dzctx_t *dz = NULL;
-       isc_event_t *dzevent = NULL;
-       isc_task_t *task = NULL;
 
        REQUIRE(text != NULL);
 
@@ -14466,16 +14461,11 @@ named_server_delzone(named_server_t *server, isc_lex_t *lex,
 
        /* Send cleanup event */
        dz = isc_mem_get(named_g_mctx, sizeof(*dz));
-
-       dz->cleanup = cleanup;
-       dz->zone = NULL;
+       *dz = (ns_dzctx_t){
+               .cleanup = cleanup,
+       };
        dns_zone_attach(zone, &dz->zone);
-       dzevent = isc_event_allocate(named_g_mctx, server, NAMED_EVENT_DELZONE,
-                                    rmzone, dz, sizeof(isc_event_t));
-
-       dns_zone_gettask(zone, &task);
-       isc_task_send(task, &dzevent);
-       dz = NULL;
+       isc_async_run(dns_zone_getloop(zone), rmzone, dz);
 
        /* Inform user about cleaning up stub/secondary zone files */
        dns_zone_getraw(zone, &raw);
index 019effd051de253377dff6765759102ab1e603b1..e7a162d3b4bbb214f02d101eb3e8a80f33aa57fa 100644 (file)
@@ -1307,17 +1307,6 @@ dns_zone_getredirecttype(dns_zone_t *zone);
  *\li  'dns_zone_secondary'
  */
 
-void
-dns_zone_gettask(dns_zone_t *zone, isc_task_t **target);
-/*%<
- * Attach '*target' to the zone's task.
- *
- * Requires:
- *\li  'zone' to be valid initialised zone.
- *\li  'zone' to have a task.
- *\li  'target' to be != NULL && '*target' == NULL.
- */
-
 void
 dns_zone_notify(dns_zone_t *zone);
 /*%<
index 860e784c89976375314d3109a6b4f3c8a0e00a68..48b9221dffb7985e4864a3eb7507ba94fa1eca92 100644 (file)
@@ -15695,12 +15695,6 @@ dns_zone_getorigin(dns_zone_t *zone) {
        return (&zone->origin);
 }
 
-void
-dns_zone_gettask(dns_zone_t *zone, isc_task_t **target) {
-       REQUIRE(DNS_ZONE_VALID(zone));
-       isc_task_attach(zone->task, target);
-}
-
 void
 dns_zone_setidlein(dns_zone_t *zone, uint32_t idlein) {
        REQUIRE(DNS_ZONE_VALID(zone));