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