From a207520211409d6a7575dec66c428988021d3b46 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <alexander.schlemmer@ds.mpg.de>
Date: Fri, 11 Jan 2019 15:39:21 +0100
Subject: [PATCH] FIX: bug that caused a remote end closed without response

Cherry-picked from 1bca2f6.
---
 src/caosdb/connection/connection.py | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/caosdb/connection/connection.py b/src/caosdb/connection/connection.py
index c7b7b3e0..183a75fd 100644
--- a/src/caosdb/connection/connection.py
+++ b/src/caosdb/connection/connection.py
@@ -83,6 +83,11 @@ class _DefaultCaosDBServerConnection(CaosDBServerConnection):
         if headers is None:
             headers = {}
         try:
+            self._http_con = StreamingHTTPSConnection(
+                host=self.setup_fields["host"],
+                timeout=self.setup_fields["timeout"],
+                context=self.setup_fields["context"],
+                socket_proxy=self.setup_fields["socket_proxy"])
             self._http_con.request(method=method, url=self._base_path + path,
                                    headers=headers, body=body)
         except SocketError as socket_err:
@@ -117,10 +122,16 @@ class _DefaultCaosDBServerConnection(CaosDBServerConnection):
                 "No connection url specified. Please "
                 "do so via caosdb.configure_connection(...) or in a config "
                 "file.")
-        self._http_con = StreamingHTTPSConnection(
-            host=host,
-            timeout=int(config.get("timeout")),
-            context=context)
+
+        socket_proxy = None
+        if "socket_proxy" in config:
+            socket_proxy = config["socket_proxy"]
+
+        self.setup_fields = {
+            "host": host,
+            "timeout": int(config.get("timeout")),
+            "context": context,
+            "socket_proxy": socket_proxy}
 
 
 def _make_conf(*conf):
-- 
GitLab