1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

stop proxy at one point

This commit is contained in:
Victor Vieux 2013-10-29 11:59:08 -07:00 committed by Victor Vieux
parent e0b59ab52b
commit 700a71e6b6
2 changed files with 19 additions and 4 deletions

View file

@ -540,7 +540,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
return nil
}
func (cli *DockerCli) forwardAllSignals(cid string) {
func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
sigc := make(chan os.Signal, 1)
utils.CatchAll(sigc)
go func() {
@ -550,6 +550,7 @@ func (cli *DockerCli) forwardAllSignals(cid string) {
}
}
}()
return sigc
}
func (cli *DockerCli) CmdStart(args ...string) error {
@ -582,7 +583,8 @@ func (cli *DockerCli) CmdStart(args ...string) error {
}
if !container.Config.Tty {
cli.forwardAllSignals(cmd.Arg(0))
sigc := cli.forwardAllSignals(cmd.Arg(0))
defer utils.StopCatch(sigc)
}
if container.Config.Tty && cli.isTerminal {
@ -1366,7 +1368,8 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
v.Set("stderr", "1")
if *proxy && !container.Config.Tty {
cli.forwardAllSignals(cmd.Arg(0))
sigc := cli.forwardAllSignals(cmd.Arg(0))
defer utils.StopCatch(sigc)
}
if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil); err != nil {
@ -1611,7 +1614,8 @@ func (cli *DockerCli) CmdRun(args ...string) error {
}
if sigProxy {
cli.forwardAllSignals(runResult.ID)
sigc := cli.forwardAllSignals(runResult.ID)
defer utils.StopCatch(sigc)
}
var (

11
utils/signal.go Normal file
View file

@ -0,0 +1,11 @@
package utils
import (
"os"
"os/signal"
)
func StopCatch(sigc chan os.Signal) {
signal.Stop(sigc)
close(sigc)
}