| 
					
				 | 
			
			
				@@ -1760,7 +1760,7 @@ int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *l 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  Authenticated = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  fl_raddius_net_err = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  strcpy(bufOut, "HTTP/1.0 200 OK\r\nContent-Type: text/html;\r\n\r\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  strcat(bufOut,"<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"3; url=/login.html\" /></head><center><h2>Ошибка соединения с RADDIUS сервером</h2></center></html>");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  strcat(bufOut,"<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"3; url=/login.html\" /></head><center><h2>Ошибка соединения с RADIUS сервером</h2></center></html>");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  *lenBufOut = strlen(bufOut);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  return SEND_REQUIRED_NO;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  break;
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2341,6 +2341,45 @@ static int my_set_session(ssl_context *ssl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return(0);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void ssl_server_read(void)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int ret;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    do
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        receivedBufLen = RECIVE_BUF_MAX_LEN - 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        memset(receiveBuf, 0, RECIVE_BUF_MAX_LEN);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Read decrypted application data
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ret = ssl_read(&ssl, (unsigned char*)receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(ret == POLARSSL_ERR_NET_WANT_READ || ret == POLARSSL_ERR_NET_WANT_WRITE)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(ret <= 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch(ret)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                printf("\n\r connection was closed \n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case POLARSSL_ERR_NET_CONN_RESET:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                printf("\n\r connection was reset by peer\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            default:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //printf("\n\r ssl_read returned %d\n", ret);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        receivedBufLen = ret;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Display the length of read data
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //printf("\n\r Successfully read %d bytes from client \n\r",len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }while(0);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   * @brief  SSL Server task.
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   * @param  pvParameters not used
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2359,7 +2398,7 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char name[MAX_WEB_COOKIE_LEN];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char id[MAX_WEB_COOKIE_LEN];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     uint8_t nameLen = 0, idLen = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    uint32_t DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    char *DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     struct fs_file file = {0, 0};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     uint32_t i;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2469,39 +2508,7 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 6. Read the HTTP Request 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //printf("\n\r <= Read from client :");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        do
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            receivedBufLen = RECIVE_BUF_MAX_LEN - 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            memset(receiveBuf, 0, RECIVE_BUF_MAX_LEN);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // Read decrypted application data 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ret = ssl_read(&ssl, (unsigned char*)receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(ret == POLARSSL_ERR_NET_WANT_READ || ret == POLARSSL_ERR_NET_WANT_WRITE)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(ret <= 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                switch(ret)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    printf("\n\r connection was closed \n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case POLARSSL_ERR_NET_CONN_RESET:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    printf("\n\r connection was reset by peer\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                default:
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //printf("\n\r ssl_read returned %d\n", ret);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            receivedBufLen = ret;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // Display the length of read data 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //printf("\n\r Successfully read %d bytes from client \n\r",len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }while(0);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ssl_server_read();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // -------------------------------------------------------------------------
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2532,7 +2539,6 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // Id of currently logged-in user 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         uint8_t user_id;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if( DataFlag == 0 && DataFlag2 == 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // Level of currently logged-in user 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         seclevel = 0xFF;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2545,13 +2551,7 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Authenticated = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             seclevel = 0xFF;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (DataFlag >= 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Authenticated = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        else if(DataFlag2 >= 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Authenticated = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ( Authenticated == false && sSettings.sRADIUS.Auth_enable == false)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             HTTP_LOGIN(sendBuf, &sendBufLoadLen);
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2579,38 +2579,38 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 fs_open("/role.js", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ssl_sendframes(&ssl, file.data, file.len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else if ((strncmp(receiveBuf, "POST /login.cgi", 15) == 0) || (log_post_reqn > 0))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (strncmp(receiveBuf, "POST /login.cgi", 15) == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                uint32_t i, offset = 0, req_data_received = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                uint32_t req_data_received = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                char *offset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                offset = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 post_data_count = Parse_Content_Length(receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (post_data_count < MAX_POST_REQ_LEN) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     memset(post_req_data, 0, MAX_POST_REQ_LEN);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					for (i = 0; i < receivedBufLen; i++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if (strncmp ((char*)(receiveBuf+i), "\r\n\r\n", 4) == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							offset = i+4;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					req_data_received = receivedBufLen - offset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    offset = (strstr(receiveBuf, "\r\n\r\n")) + 4;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    req_data_received = receivedBufLen - (offset - &receiveBuf[0]);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if (offset != 0) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (req_data_received < post_data_count) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             snprintf(post_req_data, req_data_received, "%s", receiveBuf);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             post_data_count -= req_data_received;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ssl_server_read();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            offset = receiveBuf;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(strlen(receiveBuf) != 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            strncat(post_req_data, (char *)(receiveBuf + offset), post_data_count);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            strncat(post_req_data, offset, post_data_count);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (HTTP_ConfirmWebPwd(post_req_data, sendBuf, strlen(post_req_data), &sendBufLoadLen) == SEND_REQUIRED_YES) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 ssl_sendframes(&ssl, sendBuf, sendBufLoadLen);
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2625,26 +2625,29 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             	ssl_sendframes(&ssl, sendBuf, sendBufLoadLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             post_data_count = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            log_post_reqn = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						/* Redirect to login page */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						if((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    							fs_open("/rslogin.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    							fs_open("/login.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						ssl_sendframes(&ssl, file.data, file.len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						/* End reqest */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    						post_data_count = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					/* request was fragmented before "\r\n\r\n" */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					else 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						log_post_reqn++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						/* wait max 2 requests */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if (log_post_reqn > 1) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							/* Redirect to login page */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								fs_open("/rslogin.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								fs_open("/login.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ssl_sendframes(&ssl, file.data, file.len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							/* End reqest */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							post_data_count = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							log_post_reqn = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						/* Redirect to login page */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							fs_open("/rslogin.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							fs_open("/login.html", &file);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ssl_sendframes(&ssl, file.data, file.len);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						/* End reqest */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						post_data_count = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 else 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2652,7 +2655,6 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //printf("Too long POST request!\r\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     /* Ignore request */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     post_data_count = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    log_post_reqn = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     /* Redirect to login page */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false))
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2771,86 +2773,47 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     DataOffset = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // POST Packet received 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (DataFlag2 == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BrowserFlag = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalReceived = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        memset(sendBuf, 0, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // parse packet for Content-length field 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size = Parse_Content_Length(receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalReceived = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalData = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					memset(sendBuf, 0, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // parse packet for the octet-stream field 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for (i = 0; i < receivedBufLen; i++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (strncmp ((char*)(receiveBuf+i), "managerIP", 8)==0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                DataOffset = i;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        /* case of MSIE8 : we do not receive data in the POST packet*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (DataOffset == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag2++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            BrowserFlag = 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //pbuf_free(p);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // case of Mozilla Firefox v3.6 : we receive data in the POST packet
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //TotalReceived = receivedBufLen - (ContentLengthOffset + 4);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TotalReceived = receivedBufLen - DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (((DataFlag2 ==1)&&(BrowserFlag==1)) || ((DataFlag2 ==0)&&(BrowserFlag==0)))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ((DataFlag2 ==0)&&(BrowserFlag==0))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag2++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else if ((DataFlag2 ==1)&&(BrowserFlag==1))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // parse packet for the octet-stream field */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (i = 0; i < receivedBufLen; i++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (strncmp ((char*)(receiveBuf+i), "managerIP", 8)==0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    DataOffset = i;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TotalReceived += receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag2++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalData = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // DataFlag >1 => the packet is data only  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalReceived +=receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// parse packet for Content-length field
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					size = Parse_Content_Length(receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					DataOffset = strstr(receiveBuf, "managerIP");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					/* case of MSIE8 : we do not receive data in the POST packet*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (DataOffset == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ssl_server_read();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						DataOffset = strstr(receiveBuf, "managerIP");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ptr = (char*)(receiveBuf + DataOffset);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    receivedBufLen-= DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalReceived = receivedBufLen - (DataOffset - &receiveBuf[0]);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // update Total data received counter 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TotalData +=receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalData += TotalReceived;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					strncat(sendBuf,  DataOffset, TotalReceived);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for(i  = TotalData; i < size; i ++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ssl_server_read();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						strncat(sendBuf,  DataOffset, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						TotalData += receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // check if last data packet 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (TotalReceived == size)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (TotalData == size)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //DBG printf("State: Received %d bytes\r\n", (int)TotalReceived);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       printf("State: Received %d bytes\r\n", (int)TotalData);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        strncat(sendBuf,  ptr, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        printf("receive %s /r/n", sendBuf);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         strncat(sendBuf,  " ", 1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //ВBG printf("receive %s /r/n", sendBuf);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         HTTP_SetSettings(sendBuf, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        DataFlag2=0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BrowserFlag = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         memset(sendBuf, 0, size);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         strcpy(sendBuf, "HTTP/1.1 200 OK\r\n");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2860,16 +2823,6 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         sendBufLoadLen = strlen(sendBuf);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         ssl_sendframes(&ssl, sendBuf, sendBufLoadLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // not last data packet 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // write data in flash 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(receivedBufLen)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            strncat(sendBuf,  ptr, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //memcpy(receiveBufTemp, ptr, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else if (strncmp(receiveBuf, "GET /info.cgi", 13) == 0) // +
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2883,80 +2836,35 @@ void ssl_server(void *pvParameters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (seclevel == 0) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    DataOffset = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	 DataOffset = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // POST Packet received 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (DataFlag == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        BrowserFlag = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalReceived = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        memset(sendBuf, 0, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// POST Packet received
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // parse packet for Content-length field 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        size = Parse_Content_Length(receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalReceived = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalData = 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					memset(sendBuf, 0, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // parse packet for the octet-stream field 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for (i = 0; i < receivedBufLen; i++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (strncmp ((char*)(receiveBuf+i), "owner", 5)==0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                DataOffset = i;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // case of MSIE8 : we do not receive data in the POST packet
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (DataOffset == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            BrowserFlag = 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //pbuf_free(p);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // case of Mozilla Firefox v3.6 : we receive data in the POST packet*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //TotalReceived = receivedBufLen - (ContentLengthOffset + 4);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TotalReceived = receivedBufLen - DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (((DataFlag ==1)&&(BrowserFlag==1)) || ((DataFlag ==0)&&(BrowserFlag==0)))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ((DataFlag ==0)&&(BrowserFlag==0))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        else if ((DataFlag ==1)&&(BrowserFlag==1))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // parse packet for the octet-stream field */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (i = 0; i < receivedBufLen; i++)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (strncmp ((char*)(receiveBuf+i), "owner", 5)==0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    DataOffset = i;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TotalReceived += receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            DataFlag++;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalData =0 ;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // DataFlag >1 => the packet is data only  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TotalReceived +=receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ptr = (char*)(receiveBuf + DataOffset);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    receivedBufLen-= DataOffset;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// parse packet for Content-length field
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					size = Parse_Content_Length(receiveBuf, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					DataOffset = strstr(receiveBuf, "owner");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					/* case of MSIE8 : we do not receive data in the POST packet*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (DataOffset == 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ssl_server_read();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						DataOffset = strstr(receiveBuf, "owner");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalReceived = receivedBufLen - (DataOffset - &receiveBuf[0]);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					TotalData += TotalReceived;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // update Total data received counter 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TotalData +=receivedBufLen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					strncat(sendBuf,  DataOffset, TotalReceived);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // check if last data packet 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (TotalReceived == size)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        strncat(sendBuf,  ptr, receivedBufLen);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         strncat(sendBuf,  " ", 1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         HTTP_SetInfo(sendBuf, strlen(sendBuf));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         DataFlag = 0;
 
			 |