int RTConnHttp::ProcessData(const char*pData, int nLen) { int parsed = 0; enum http_errno err; while (parsed < nLen) { const char* pMsg = pData + parsed; int msgLen = nLen - parsed; int nlen = do_http_parse(HTTP_RESPONSE, (char *)pMsg, msgLen, &err, &RTConnHttp::OnParsedHttpMessage, this); parsed += nlen; if (err != HPE_OK) { LE("do_http_parse error!!!!!!\n"); parsed = nLen; break; } else if (nlen == 0) { break; } else { //LI(">Recv:%.*s \r\n", parsed, pMsg); } } return parsed; }
int CRTConnHttp::ProcessData(const char*pData, int nLen) { int parsed = 0; enum http_errno err; while (parsed < nLen) { const char* pMsg = pData + parsed; int msgLen = nLen - parsed; int nlen = do_http_parse(HTTP_REQUEST, (char *)pMsg, msgLen, &err, &CRTConnHttp::OnParsedHttpMessage, this); parsed += nlen; if (err != HPE_OK) { SendResponse(HPS_BAD_REQUEST, ":("); parsed = nLen; break; } else if (nlen == 0) { break; } else { //LI(">Recv:%.*s \r\n", parsed, pMsg); } } return parsed; }