# Buggy code
def do_POST(self):
    self.send_error(501, "Unsupported method (POST)")
    return


# Traceback (OSError)
2020-01-17 10:14:45,982 - iostream.py:1518 - _do_ssl_handshake() - WARNING - SSL Error on 1504 ('1.1.1.2', 4469): [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1076)
2020-01-17 10:14:46,055 - iostream.py:1518 - _do_ssl_handshake() - WARNING - SSL Error on 1500 ('1.1.1.2', 4470): [SSL: VERSION_TOO_LOW] version too low (_ssl.c:1076)
2020-01-17 10:14:46,136 - iostream.py:744 - _handle_events() - ERROR - Uncaught exception, closing connection.
Traceback (most recent call last):
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 709, in _handle_events
self._handle_read()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 1581, in _handle_read
self._do_ssl_handshake()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 1501, in _do_ssl_handshake
self.socket.do_handshake()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
OSError: [Errno 0] Error
2020-01-17 10:14:46,163 - base_events.py:1604 - default_exception_handler() - ERROR - Exception in callback None()
handle: <Handle cancelled>
Traceback (most recent call last):
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\asyncio\events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\platform\asyncio.py", line 122, in _handle_events
handler_func(fileobj, events)
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 709, in _handle_events
self._handle_read()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 1581, in _handle_read
self._do_ssl_handshake()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\site-packages\tornado\iostream.py", line 1501, in _do_ssl_handshake
self.socket.do_handshake()
File "C:\Users\Vakaris\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
OSError: [Errno 0] Error

# Fixed code
def do_POST(self):
    try:
        content_length = int(self.headers["Content-Length"])
        post_data = self.rfile.read(content_length).decode()
        LOG.info("Received bootloader's request: {}".format(post_data))
        try:
            dest_path = self.path
            r = requests.post(
                url=dest_path,
                data=post_data,
                verify=False,
                proxies=infection_monkey.control.ControlClient.proxies,
            )
            self.send_response(r.status_code)
        except requests.exceptions.ConnectionError as e:
            LOG.error("Couldn't forward request to the island: {}".format(e))
            self.send_response(404)
        except Exception as e:
            LOG.error("Failed to forward bootloader request: {}".format(e))
        finally:
            self.end_headers()
            self.wfile.write(r.content)
    except Exception as e:
        LOG.error("Failed receiving bootloader telemetry: {}".format(e))