From ddd039761d98f737c1597a3d44ec5a0f8abeb4b2 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 16 Jun 2016 18:04:51 +0100 Subject: [PATCH 1/2] Handle Docker daemon named 'dockerd' --- prog/weaveutil/docker_tls_args.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/prog/weaveutil/docker_tls_args.go b/prog/weaveutil/docker_tls_args.go index 83dff5ec..01afe805 100644 --- a/prog/weaveutil/docker_tls_args.go +++ b/prog/weaveutil/docker_tls_args.go @@ -26,7 +26,12 @@ func dockerTLSArgs(args []string) error { continue } - if comm, err := ioutil.ReadFile(filepath.Join(procRoot, dirName, "comm")); err != nil || string(comm) != "docker\n" { + isDaemon := false + if comm, err := ioutil.ReadFile(filepath.Join(procRoot, dirName, "comm")); err != nil { + continue + } else if string(comm) == "dockerd\n" { + isDaemon = true + } else if string(comm) != "docker\n" { continue } @@ -35,7 +40,6 @@ func dockerTLSArgs(args []string) error { continue } - isDaemon := false tlsArgs := []string{} args := bytes.Split(cmdline, []byte{'\000'}) for i := 0; i < len(args); i++ { From 56c275a9bf21d1edbc038423144019d897f96f75 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 17 Jun 2016 13:07:04 +0100 Subject: [PATCH 2/2] Copy Docker's response code through for raw stream. This means when Docker says "101 UPGRADED" the proxy will say the same, instead of "200 OK". Docker 1.12 barfs if you do that. --- proxy/proxy_intercept.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy/proxy_intercept.go b/proxy/proxy_intercept.go index 45a16558..42373914 100644 --- a/proxy/proxy_intercept.go +++ b/proxy/proxy_intercept.go @@ -78,7 +78,7 @@ func doRawStream(w http.ResponseWriter, resp *http.Response, client *httputil.Cl defer down.Close() defer up.Close() - if _, err := down.Write([]byte("HTTP/1.1 200 OK\n")); err != nil { + if _, err := down.Write([]byte("HTTP/1.1 " + resp.Status + "\n")); err != nil { Log.Warning(err) return }