summaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-10-31 18:16:15 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-10-31 18:16:15 +0100
commite2b56924035977f1a8aac1b87372ad0be6eb51e8 (patch)
tree22b3a8c7fc02cdd81f8a7c74a61189cc60cdb330 /plugin
parent0f14bdb757fb730959309481ad911ea270222154 (diff)
downloadeurephia-e2b56924035977f1a8aac1b87372ad0be6eb51e8.tar.gz
eurephia-e2b56924035977f1a8aac1b87372ad0be6eb51e8.tar.xz
eurephia-e2b56924035977f1a8aac1b87372ad0be6eb51e8.zip
BUGFIX (1/2) ... implemented worker side fix of shutdown bug
Diffstat (limited to 'plugin')
-rw-r--r--plugin/firewall/iptables/efw_iptables.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/plugin/firewall/iptables/efw_iptables.c b/plugin/firewall/iptables/efw_iptables.c
index f62f059..3d173d3 100644
--- a/plugin/firewall/iptables/efw_iptables.c
+++ b/plugin/firewall/iptables/efw_iptables.c
@@ -91,8 +91,16 @@ void eFW_RunFirewall(void *fwargs) {
}
}
- efwRemoveSemaphores(ctx, fwargs);
+
efwRemoveMessageQueue(ctx, fwargs);
+
+ DEBUG(ctx, 28, "eFW_RunFirewall: Telling eFW master that the worker process is about to shutdown");
+ sem_post(cfg->semp_worker);
+
+ DEBUG(ctx, 28, "eFW_RunFirewall: Waiting for eFW master to acknowledge");
+ sem_wait(cfg->semp_master);
+
+ efwRemoveSemaphores(ctx, fwargs);
exit(0);
}