From 14e6d4a8e33eaae4bde88c46a5e4bcf07f365861 Mon Sep 17 00:00:00 2001 From: Mario Loriedo Date: Thu, 23 Jun 2016 09:09:40 +0200 Subject: [PATCH] Add HTTP Host header to support Docker v1.12 (#1550) Signed-off-by: Mario Loriedo --- .../che/plugin/docker/client/connection/TcpConnection.java | 6 ++++++ .../docker/client/connection/UnixSocketConnection.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java index 30dc6949085..f7fbad000f4 100644 --- a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java +++ b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/TcpConnection.java @@ -67,6 +67,12 @@ protected DockerResponse request(String method, String path, String query, List< for (Pair header : headers) { connection.setRequestProperty(header.first, String.valueOf(header.second)); } + String host = url.getHost(); + if (url.getPort() != -1) { + host += ":" + Integer.toString(url.getPort()); + } + // Host header is mandatory in HTTP 1.1 + connection.setRequestProperty("Host", host); if (entity != null) { connection.setDoOutput(true); try (OutputStream output = connection.getOutputStream()) { diff --git a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java index 5fc2137bb6d..18efb4741d4 100644 --- a/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java +++ b/plugins/plugin-docker/che-plugin-docker-client/src/main/java/org/eclipse/che/plugin/docker/client/connection/UnixSocketConnection.java @@ -94,7 +94,8 @@ private void writeHttpHeaders(OutputStream output, String method, String path, S writer.write(String.valueOf(header.second)); writer.write("\r\n"); } - writer.write("\r\n"); + // Host header is mandatory in HTTP 1.1 + writer.write("Host: \r\n\r\n"); writer.flush(); }