diff options
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/firewall/iptables/efw_iptables.c | 10 |
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); } |
