summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/compat/containers_attach.go
diff options
context:
space:
mode:
authorMatthew Heon <mheon@redhat.com>2020-04-15 16:10:33 -0400
committerMatthew Heon <matthew.heon@pm.me>2020-05-14 16:56:01 -0400
commitce56b688712dad1095ab0c520fab5c0b7cedc68b (patch)
treea54de1cb96db53ea34d66184e4f9065beb860520 /pkg/api/handlers/compat/containers_attach.go
parent50cc56bc4a37b4f83988608ec864ece3b67386d8 (diff)
downloadpodman-ce56b688712dad1095ab0c520fab5c0b7cedc68b.tar.gz
podman-ce56b688712dad1095ab0c520fab5c0b7cedc68b.tar.bz2
podman-ce56b688712dad1095ab0c520fab5c0b7cedc68b.zip
Wire in endpoint for ExecStart
This is still very early not not well tested, and missing resize capability, but it does provide the first bits of exec. Signed-off-by: Matthew Heon <mheon@redhat.com>
Diffstat (limited to 'pkg/api/handlers/compat/containers_attach.go')
-rw-r--r--pkg/api/handlers/compat/containers_attach.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/pkg/api/handlers/compat/containers_attach.go b/pkg/api/handlers/compat/containers_attach.go
index 52c851b8c..3c9a6fd69 100644
--- a/pkg/api/handlers/compat/containers_attach.go
+++ b/pkg/api/handlers/compat/containers_attach.go
@@ -13,6 +13,12 @@ import (
"k8s.io/client-go/tools/remotecommand"
)
+// AttachHeader is the literal header sent for upgraded/hijacked connections for
+// attach, sourced from Docker at:
+// https://raw.githubusercontent.com/moby/moby/b95fad8e51bd064be4f4e58a996924f343846c85/api/server/router/container/container_routes.go
+// Using literally to ensure compatibility with existing clients.
+const AttachHeader = "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n"
+
func AttachContainer(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
decoder := r.Context().Value("decoder").(*schema.Decoder)
@@ -106,10 +112,7 @@ func AttachContainer(w http.ResponseWriter, r *http.Request) {
return
}
- // This header string sourced from Docker:
- // https://raw.githubusercontent.com/moby/moby/b95fad8e51bd064be4f4e58a996924f343846c85/api/server/router/container/container_routes.go
- // Using literally to ensure compatibility with existing clients.
- fmt.Fprintf(connection, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n")
+ fmt.Fprintf(connection, AttachHeader)
logrus.Debugf("Hijack for attach of container %s successful", ctr.ID())