From c5632622391921160687f3e0155bdfe3d3cfc07d Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Mon, 10 Mar 2014 13:38:17 -0700 Subject: [PATCH] Move signal to pkg Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes (github: creack) --- api/client.go | 13 +-- {utils => pkg/signal}/signal.go | 2 +- {utils => pkg/signal}/signal_darwin.go | 2 +- .../signal/signal_freebsd.go | 7 +- pkg/signal/signal_linux.go | 87 +++++++++++++++++++ 5 files changed, 97 insertions(+), 14 deletions(-) rename {utils => pkg/signal}/signal.go (87%) rename {utils => pkg/signal}/signal_darwin.go (97%) rename utils/signal_linux.go => pkg/signal/signal_freebsd.go (85%) create mode 100644 pkg/signal/signal_linux.go diff --git a/api/client.go b/api/client.go index 10075ae613..5e110d49f5 100644 --- a/api/client.go +++ b/api/client.go @@ -13,6 +13,7 @@ import ( "github.com/dotcloud/docker/engine" "github.com/dotcloud/docker/nat" flag "github.com/dotcloud/docker/pkg/mflag" + "github.com/dotcloud/docker/pkg/signal" "github.com/dotcloud/docker/pkg/term" "github.com/dotcloud/docker/registry" "github.com/dotcloud/docker/runconfig" @@ -24,7 +25,7 @@ import ( "net/http/httputil" "net/url" "os" - "os/signal" + gosignal "os/signal" "path" "reflect" "regexp" @@ -533,7 +534,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error { func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal { sigc := make(chan os.Signal, 1) - utils.CatchAll(sigc) + signal.CatchAll(sigc) go func() { for s := range sigc { if s == syscall.SIGCHLD { @@ -581,7 +582,7 @@ func (cli *DockerCli) CmdStart(args ...string) error { if !container.Config.Tty { sigc := cli.forwardAllSignals(cmd.Arg(0)) - defer utils.StopCatch(sigc) + defer signal.StopCatch(sigc) } var in io.ReadCloser @@ -1614,7 +1615,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error { if *proxy && !container.Config.Tty { sigc := cli.forwardAllSignals(cmd.Arg(0)) - defer utils.StopCatch(sigc) + defer signal.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 { @@ -1818,7 +1819,7 @@ func (cli *DockerCli) CmdRun(args ...string) error { if sigProxy { sigc := cli.forwardAllSignals(runResult.Get("Id")) - defer utils.StopCatch(sigc) + defer signal.StopCatch(sigc) } var ( @@ -2320,7 +2321,7 @@ func (cli *DockerCli) monitorTtySize(id string) error { cli.resizeTty(id) sigchan := make(chan os.Signal, 1) - signal.Notify(sigchan, syscall.SIGWINCH) + gosignal.Notify(sigchan, syscall.SIGWINCH) go func() { for _ = range sigchan { cli.resizeTty(id) diff --git a/utils/signal.go b/pkg/signal/signal.go similarity index 87% rename from utils/signal.go rename to pkg/signal/signal.go index 0cac7d113f..6f9874bd01 100644 --- a/utils/signal.go +++ b/pkg/signal/signal.go @@ -1,4 +1,4 @@ -package utils +package signal import ( "os" diff --git a/utils/signal_darwin.go b/pkg/signal/signal_darwin.go similarity index 97% rename from utils/signal_darwin.go rename to pkg/signal/signal_darwin.go index 28730db8e5..22a60ae18d 100644 --- a/utils/signal_darwin.go +++ b/pkg/signal/signal_darwin.go @@ -1,4 +1,4 @@ -package utils +package signal import ( "os" diff --git a/utils/signal_linux.go b/pkg/signal/signal_freebsd.go similarity index 85% rename from utils/signal_linux.go rename to pkg/signal/signal_freebsd.go index 26cfd56967..d27782217f 100644 --- a/utils/signal_linux.go +++ b/pkg/signal/signal_freebsd.go @@ -1,4 +1,4 @@ -package utils +package signal import ( "os" @@ -12,7 +12,6 @@ func CatchAll(sigc chan os.Signal) { syscall.SIGALRM, syscall.SIGBUS, syscall.SIGCHLD, - syscall.SIGCLD, syscall.SIGCONT, syscall.SIGFPE, syscall.SIGHUP, @@ -22,12 +21,9 @@ func CatchAll(sigc chan os.Signal) { syscall.SIGIOT, syscall.SIGKILL, syscall.SIGPIPE, - syscall.SIGPOLL, syscall.SIGPROF, - syscall.SIGPWR, syscall.SIGQUIT, syscall.SIGSEGV, - syscall.SIGSTKFLT, syscall.SIGSTOP, syscall.SIGSYS, syscall.SIGTERM, @@ -35,7 +31,6 @@ func CatchAll(sigc chan os.Signal) { syscall.SIGTSTP, syscall.SIGTTIN, syscall.SIGTTOU, - syscall.SIGUNUSED, syscall.SIGURG, syscall.SIGUSR1, syscall.SIGUSR2, diff --git a/pkg/signal/signal_linux.go b/pkg/signal/signal_linux.go new file mode 100644 index 0000000000..b6b25d518b --- /dev/null +++ b/pkg/signal/signal_linux.go @@ -0,0 +1,87 @@ +package signal + +import ( + "os" + "os/signal" + "syscall" +) + +var signalMap = map[string]syscall.Signal{} + +/* + syscall.SIGABRT, + syscall.SIGALRM, + syscall.SIGBUS, + syscall.SIGCHLD, + syscall.SIGCLD, + syscall.SIGCONT, + syscall.SIGFPE, + syscall.SIGHUP, + syscall.SIGILL, + syscall.SIGINT, + syscall.SIGIO, + syscall.SIGIOT, + syscall.SIGKILL, + syscall.SIGPIPE, + syscall.SIGPOLL, + syscall.SIGPROF, + syscall.SIGPWR, + syscall.SIGQUIT, + syscall.SIGSEGV, + syscall.SIGSTKFLT, + syscall.SIGSTOP, + syscall.SIGSYS, + syscall.SIGTERM, + syscall.SIGTRAP, + syscall.SIGTSTP, + syscall.SIGTTIN, + syscall.SIGTTOU, + syscall.SIGUNUSED, + syscall.SIGURG, + syscall.SIGUSR1, + syscall.SIGUSR2, + syscall.SIGVTALRM, + syscall.SIGWINCH, + syscall.SIGXCPU, + syscall.SIGXFSZ, +*/ + +func CatchAll(sigc chan os.Signal) { + signal.Notify(sigc, + syscall.SIGABRT, + syscall.SIGALRM, + syscall.SIGBUS, + syscall.SIGCHLD, + syscall.SIGCLD, + syscall.SIGCONT, + syscall.SIGFPE, + syscall.SIGHUP, + syscall.SIGILL, + syscall.SIGINT, + syscall.SIGIO, + syscall.SIGIOT, + syscall.SIGKILL, + syscall.SIGPIPE, + syscall.SIGPOLL, + syscall.SIGPROF, + syscall.SIGPWR, + syscall.SIGQUIT, + syscall.SIGSEGV, + syscall.SIGSTKFLT, + syscall.SIGSTOP, + syscall.SIGSYS, + syscall.SIGTERM, + syscall.SIGTRAP, + syscall.SIGTSTP, + syscall.SIGTTIN, + syscall.SIGTTOU, + syscall.SIGUNUSED, + syscall.SIGURG, + syscall.SIGUSR1, + syscall.SIGUSR2, + syscall.SIGVTALRM, + syscall.SIGWINCH, + syscall.SIGXCPU, + syscall.SIGXFSZ, + ) +}