summaryrefslogtreecommitdiff
path: root/usr.sbin/relayd/pfe.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/relayd/pfe.c')
-rw-r--r--usr.sbin/relayd/pfe.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr.sbin/relayd/pfe.c b/usr.sbin/relayd/pfe.c
index 522607d9971..465763103da 100644
--- a/usr.sbin/relayd/pfe.c
+++ b/usr.sbin/relayd/pfe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfe.c,v 1.40 2007/11/14 15:25:26 pyr Exp $ */
+/* $OpenBSD: pfe.c,v 1.41 2007/11/15 17:02:01 pyr Exp $ */
/*
* Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -361,8 +361,13 @@ pfe_dispatch_parent(int fd, short event, void * ptr)
sizeof(struct hoststated) + IMSG_HEADER_SIZE)
fatalx("corrupted reload data");
pfe_disable_events();
- purge_config(env, PURGE_EVERYTHING);
+ purge_config(env, PURGE_SERVICES|PURGE_TABLES);
merge_config(env, (struct hoststated *)imsg.data);
+ /*
+ * no relays when reconfiguring yet.
+ */
+ env->relays = NULL;
+ env->protos = NULL;
env->tables = calloc(1, sizeof(*env->tables));
env->services = calloc(1, sizeof(*env->services));