diff options
author | maride <maride@darknebu.la> | 2018-09-08 00:28:34 +0200 |
---|---|---|
committer | maride <maride@darknebu.la> | 2018-09-08 00:28:34 +0200 |
commit | 0554bfa9a1ee2a7c9d3ff24749317fd9b3202ca2 (patch) | |
tree | 53c236b4595d912260603465c874134413d11bb2 | |
parent | 5dde5e766c0178a80416e3ec8f3ffc55a2691ed2 (diff) |
Stop all challenge containers on shutdown
-rw-r--r-- | src/containerManager.go | 10 | ||||
-rw-r--r-- | src/main.go | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/containerManager.go b/src/containerManager.go index 0c25ae9..c8af5f9 100644 --- a/src/containerManager.go +++ b/src/containerManager.go @@ -62,6 +62,16 @@ func stopChallengeContainer(name string) { } } +// Stops all containers. Thread-safe! +func stopAllChallengeContainers() { + containerStopLock.Lock() + defer containerStopLock.Unlock() + + for _, c := range containers { + c.stopContainer() + } +} + // Returns the address for the given container, if there is a container with this name running func getAddressForChallengeContainer(container string) (address string) { for _, c := range containers { diff --git a/src/main.go b/src/main.go index 4833896..574d156 100644 --- a/src/main.go +++ b/src/main.go @@ -55,9 +55,10 @@ func cleanup(signalChannel chan os.Signal, server http.Server) { server.Close() log.Println("Stopping VPN container") stopVPN() + log.Println("Stopping challenge containers") + stopAllChallengeContainers() log.Println("Deleting Docker networks") deleteNetwork(vpnHostNetworkName) deleteNetwork(containerNetworkName) - // TODO: stop challenge containers os.Exit(0) } |