]> gitweb.ps.run Git - matrix_esp_thesis/blobdiff - src/matrix_http_mongoose.c
delete OlmJS example
[matrix_esp_thesis] / src / matrix_http_mongoose.c
index 020b4c8cf638256edc9db6a521b454f7c71c4f98..452e26c59fb0b26de08671e449e16caaa029feec 100644 (file)
@@ -36,13 +36,17 @@ MatrixHttpCallback(
         // If s_url is https://, tell client connection to use TLS\r
         if (mg_url_is_ssl(client->server))\r
         {\r
-            struct mg_tls_opts opts;\r
+            static struct mg_tls_opts opts;\r
             opts.srvname = host;\r
             mg_tls_init(c, &opts);\r
         }\r
 \r
         conn->connection = c;\r
         conn->connected = true;\r
+    }\r
+    if (ev == MG_EV_HTTP_CHUNK)\r
+    {\r
+        \r
     }\r
     if (ev == MG_EV_HTTP_MSG)\r
     {\r
@@ -56,7 +60,12 @@ MatrixHttpCallback(
         conn->dataLen = hm->body.len;\r
         conn->dataReceived = true;\r
 \r
-        printf("received[%d]:\n%.*s\n", conn->dataLen, conn->dataLen, conn->data);\r
+        //printf("received[%d]:\n%.*s\n", conn->dataLen, conn->dataLen, conn->data);\r
+    }\r
+    if (ev == MG_EV_CLOSE)\r
+    {\r
+        conn->connection = NULL;\r
+        conn->connected = false;\r
     }\r
 }\r
 \r
@@ -71,7 +80,18 @@ MatrixHttpInit(
     \r
     mg_mgr_init(&conn->mgr);\r
 \r
-    mg_http_connect(&conn->mgr, client->server, MatrixHttpCallback, client);\r
+    return MatrixHttpConnect(client);\r
+}\r
+\r
+bool\r
+MatrixHttpConnect(\r
+    MatrixClient * client)\r
+{\r
+    MatrixHttpConnection * conn =\r
+        (MatrixHttpConnection *)client->httpUserData;\r
+    \r
+    //struct mg_connection * c =\r
+        mg_http_connect(&conn->mgr, client->server, MatrixHttpCallback, client);\r
 \r
     while (! conn->connected)\r
         mg_mgr_poll(&conn->mgr, 1000);\r
@@ -100,6 +120,8 @@ MatrixHttpGet(
     bool authenticated)\r
 {\r
     MatrixHttpConnection * conn = (MatrixHttpConnection *)client->httpUserData;\r
+    if (! conn->connected)\r
+        MatrixHttpConnect(client);\r
 \r
     conn->dataReceived = false;\r
 \r
@@ -114,6 +136,15 @@ MatrixHttpGet(
     else\r
         authorizationHeader[0] = '\0';\r
 \r
+    printf(\r
+        "GET %s HTTP/1.1\r\n"\r
+        "Host: %.*s\r\n"\r
+        "%s"\r
+        "\r\n",\r
+        url,\r
+        host.len, host.ptr,\r
+        authorizationHeader);\r
+\r
     mg_printf(conn->connection,\r
         "GET %s HTTP/1.1\r\n"\r
         "Host: %.*s\r\n"\r
@@ -141,6 +172,8 @@ MatrixHttpPost(
     bool authenticated)\r
 {\r
     MatrixHttpConnection * conn = (MatrixHttpConnection *)client->httpUserData;\r
+    if (! conn->connected)\r
+        MatrixHttpConnect(client);\r
 \r
     conn->dataReceived = false;\r
 \r
@@ -153,6 +186,21 @@ MatrixHttpPost(
     else\r
         authorizationHeader[0] = '\0';\r
 \r
+    printf(\r
+            "POST %s HTTP/1.0\r\n"\r
+            "Host: %.*s\r\n"\r
+            "%s"\r
+            "Content-Type: application/json\r\n"\r
+            "Content-Length: %d\r\n"\r
+            "\r\n"\r
+            "%s"\r
+            "\r\n",\r
+            url,\r
+            host.len, host.ptr,\r
+            authorizationHeader,\r
+            strlen(requestBuffer),\r
+            requestBuffer);\r
+\r
     mg_printf(conn->connection,\r
             "POST %s HTTP/1.0\r\n"\r
             "Host: %.*s\r\n"\r
@@ -186,6 +234,8 @@ MatrixHttpPut(
     bool authenticated)\r
 {\r
     MatrixHttpConnection * conn = (MatrixHttpConnection *)client->httpUserData;\r
+    if (! conn->connected)\r
+        MatrixHttpConnect(client);\r
 \r
     conn->dataReceived = false;\r
 \r
@@ -198,6 +248,22 @@ MatrixHttpPut(
     else\r
         authorizationHeader[0] = '\0';\r
 \r
+    \r
+    printf(\r
+            "PUT %s HTTP/1.0\r\n"\r
+            "Host: %.*s\r\n"\r
+            "%s"\r
+            "Content-Type: application/json\r\n"\r
+            "Content-Length: %d\r\n"\r
+            "\r\n"\r
+            "%s"\r
+            "\r\n",\r
+            url,\r
+            host.len, host.ptr,\r
+            authorizationHeader,\r
+            strlen(requestBuffer),\r
+            requestBuffer);\r
+\r
     mg_printf(conn->connection,\r
             "PUT %s HTTP/1.0\r\n"\r
             "Host: %.*s\r\n"\r