Forráskód Böngészése

[bt_6703][ssl_server]fix upload file for chrome

balbekova 5 éve
szülő
commit
d94d1c34fd
1 módosított fájl, 16 hozzáadás és 6 törlés
  1. 16 6
      modules/HTTP_Server/my_ssl_server.c

+ 16 - 6
modules/HTTP_Server/my_ssl_server.c

@@ -1356,12 +1356,11 @@ char *HTTP_Upload_Sert(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
         if ( DataOffset != NULL ) {
             DataOffset += 4;
         }
-    }
-    // case of MSIE8 : we do not receive data in the POST packet
-    if (DataOffset == NULL) {
+    } else {
         SSL_ReadRoutine(&ssl, (unsigned char *)bufIn);
         bufIn[receivedBufLen] = '\0';
-        printf("receive2 %s \r\n", bufIn);
+        lenBufIn = receivedBufLen;
+        pbound = Parce_Boundary(bufIn, lenBufIn, boundary, sizeof(boundary));
         if (pbound != NULL) {
             ContentOffset = strstr(bufIn, boundary);
             DataOffset = strstr(ContentOffset, "\r\n\r\n");
@@ -1370,7 +1369,18 @@ char *HTTP_Upload_Sert(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
             }
         }
     }
-
+    // case of MSIE8 : we do not receive data in the POST packet
+    if (DataOffset == NULL) {
+        SSL_ReadRoutine(&ssl, (unsigned char *)bufIn);
+        bufIn[receivedBufLen] = '\0';
+        lenBufIn = receivedBufLen;
+        //printf("receive2 %s \r\n", bufIn);
+        ContentOffset = strstr(bufIn, boundary);
+        DataOffset = strstr(ContentOffset, "\r\n\r\n");
+        if ( DataOffset != NULL ) {
+            DataOffset += 4;
+        }
+    }
     TotalReceived = lenBufIn - (uint32_t)(ContentOffset - bufIn);
     TotalData += TotalReceived;
     strncat(bufOut,  DataOffset, TotalReceived);
@@ -1387,7 +1397,7 @@ char *HTTP_Upload_Sert(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
         printf("size %d \r\n", size);
         printf("receive3 %s \r\n", (receiveBuf+receivedBufLen - 30));*/
     }
-    printf("TotalData %d \r\n", TotalData);
+    //printf("TotalData %d \r\n", TotalData);
     // check if last data packet
     if (TotalData == size) {
         // printf("receive %s \r\n", sendBuf);