From 6ef795e08202745651e0726b811abc06118c585a Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Thu, 19 Jun 2014 09:53:38 +0100
Subject: [PATCH] manual mitm for oracle.com

---
 examples/proxy.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/examples/proxy.c b/examples/proxy.c
index 9ee3815c3..d941192d5 100644
--- a/examples/proxy.c
+++ b/examples/proxy.c
@@ -124,6 +124,13 @@ static int proxy_event_handler(struct mg_connection *conn, enum mg_event ev) {
         return try_to_serve_locally(conn);
       }
 
+      // Enable man-in-the-middle SSL mode for oracle.com
+      if (!strcmp(conn->request_method, "CONNECT") &&
+          !strcmp(host, "oracle.com")) {
+        mg_terminate_ssl(conn, "ssl_cert.pem");
+        return MG_MORE;
+      }
+
       return MG_FALSE;
     case MG_AUTH:
       return MG_TRUE;
@@ -168,6 +175,7 @@ int main(int argc, char *argv[]) {
 
   // Create and configure proxy server
   s_server = mg_create_server(NULL, &proxy_event_handler);
+  setopt(s_server, "enable_proxy",        "yes");
   setopt(s_server, "document_root",       root);
   setopt(s_server, "listening_port",      port);
   setopt(s_server, "ssl_certificate",     cert);
-- 
GitLab