From bbedb7938e7ac9efdb05b45e4ae695297535e984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Vavru=C5=A1a?= <marek.vavrusa@nic.cz> Date: Tue, 27 May 2014 13:54:33 +0200 Subject: [PATCH] events: reinserted mem_trim() where appropriate --- src/knot/nameserver/update.c | 3 --- src/knot/server/server.c | 6 +++--- src/knot/zone/events.c | 8 ++++++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/knot/nameserver/update.c b/src/knot/nameserver/update.c index 696a817119..8bc0c3bd21 100644 --- a/src/knot/nameserver/update.c +++ b/src/knot/nameserver/update.c @@ -200,9 +200,6 @@ static int process_authenticated(uint16_t *rcode, struct query_data *qdata) update_cleanup(ddns_chs); changesets_free(&ddns_chs, NULL); - /* Trim extra heap. */ - mem_trim(); - /* Sync zonefile immediately if configured. */ if (zone->conf->dbsync_timeout == 0) { zone_events_schedule(zone, ZONE_EVENT_FLUSH, ZONE_EVENT_NOW); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index ad5b49fedb..b017794bc9 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -591,14 +591,14 @@ int server_update_zones(const struct conf_t *conf, void *data) /* Reload zone database and free old zones. */ int ret = zonedb_reload(conf, server); + /* Trim extra heap. */ + mem_trim(); + /* Plan events on new zones. */ if (server->zone_db) { knot_zonedb_foreach(server->zone_db, zone_events_start); } - /* Trim extra heap. */ - mem_trim(); - return ret; } diff --git a/src/knot/zone/events.c b/src/knot/zone/events.c index cf4e8955fe..2f6d576b01 100644 --- a/src/knot/zone/events.c +++ b/src/knot/zone/events.c @@ -259,6 +259,9 @@ static int event_reload(zone_t *zone) zone_contents_deep_free(&old); } + /* Trim extra heap. */ + mem_trim(); + /* Schedule notify and refresh after load. */ if (zone_master(zone)) { zone_events_schedule(zone, ZONE_EVENT_REFRESH, ZONE_EVENT_NOW); @@ -339,6 +342,8 @@ static int event_xfer(zone_t *zone) zone_events_schedule(zone, ZONE_EVENT_NOTIFY, ZONE_EVENT_NOW); zone->bootstrap_retry = ZONE_EVENT_NOW; zone->flags &= ~ZONE_FORCE_AXFR; + /* Trim extra heap. */ + mem_trim(); } else { /* Zone contents is still empty, increment bootstrap retry timer * and try again. */ @@ -390,6 +395,9 @@ static int event_update(zone_t *zone) knot_pkt_free(&update->query); free(update); + /* Trim extra heap. */ + mem_trim(); + return KNOT_EOK; } -- GitLab