I'm a newbie of C. Here I write a function to parse http post from browser. Here is my code:
char* HTTP_POST_GET_BODY(char* HttpPost){
     char* HttpPostBody = strstr(HttpPost,"\r\n\r\n");
     HttpPostBody = HttpPostBody + 4;
     if(strcmp(HttpPostBody,"\r\n\r\n") != 0 && strcmp(HttpPostBody,"") != 0){
         return HttpPostBody;
     }
     else{
        char* HttpPostBody_IE;
        HttpPostBody = strstr(HttpPost,"::");
        char* HttpPostBodyEnd = strstr(HttpPost,"HTTP/1.1");
        int body_length = HttpPostBodyEnd - HttpPostBody;
        strncpy(HttpPostBody_IE,HttpPostBody+2,body_length-2);
        return HttpPostBody_IE;
     }
}
So basically, if the procedure goes in the "else" it should return a char pointer to caller. I check the debugger. HttpPostBody_IE has a value but when it return it is a null string.
char* http_body = HTTP_POST_GET_BODY(recieve_buffer);
Anyone has an idea about it?
 
    