Diffstat (limited to 'noncore/net/ubrowser/httpcomm.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/ubrowser/httpcomm.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/noncore/net/ubrowser/httpcomm.cpp b/noncore/net/ubrowser/httpcomm.cpp index 54f7acf..b086b58 100644 --- a/noncore/net/ubrowser/httpcomm.cpp +++ b/noncore/net/ubrowser/httpcomm.cpp @@ -146,24 +146,25 @@ void HttpComm::incoming() //case 0=need to read chunk length case 0: j = tempQString.find('\n'); sclength = tempQString; sclength.truncate(j); clength = sclength.toUInt(0, 16); printf("HttpComm::Incoming: chunk length: %d\n", clength); //end of data if(clength==0) { processBody(); done=true; + return; } //still more, but it hasnt been recieved yet if(ba <= j) { status=1; done=true; break; } //still more data waiting else { done=false; @@ -185,25 +186,25 @@ void HttpComm::incoming() printf("HttpComm::incoming: start new body piece 1: \n"); printf("%s", newTQstring.latin1() ); printf("HttpComm::incoming: end new body piece 1.\n"); status=0; j=clength-bRead; done=false; // break; } //the chunk extends beyond the current data; else { body+=tempQString; - bRead+=ba; + bRead+=tempQString.length(); printf("HttpComm::incoming: start new body piece 2: \n"); printf("%s", tempQString.latin1() ); printf("HttpComm::incoming: end new body piece 2.\n"); done=true; status=2; // break; } break; //just got data in, continue reading chunk case 2: //the current data extends beyond the end of the chunk if(bRead + tempQString.length() > clength) @@ -215,25 +216,25 @@ void HttpComm::incoming() printf("HttpComm::incoming: start new body piece 3: \n"); printf("%s", newTQstring.latin1() ); printf("HttpComm::incoming: end new body piece 3.\n"); status=0; j=clength-bRead; done=false; // break; } //the chunk extends beyond the current data; else { body+=tempQString; - bRead+=ba; + bRead+=tempQString.length(); printf("HttpComm::incoming: start new body piece 4: \n"); printf("%s", tempQString.latin1() ); printf("HttpComm::incoming: end new body piece 4.\n"); done=true; status=2; // break; } break; } printf("HttpComm::incoming: chunked encoding: bRead: %d\n", bRead); } } @@ -270,26 +271,28 @@ void HttpComm::parseHeader() { printf("HttpComm::parseHeader: using chunked encoding\n"); chunked = true; status=0; } } printf("HttpConn::parseHeader: content-length: %d\n", length); } void HttpComm::processBody() { + printf("HttpComm::processBody: processing body\n"); // printf("HttpComm::processBody: start body\n\n"); // printf("%s", body.latin1()); // printf("HttpComm::processBody: end body\n"); int lastSlash = file.findRev('/'); QString end = file; - end.truncate(lastSlash-1); + end.truncate(lastSlash+1); QString context("http://"+host+':'+portS+end); + printf("HttpComm::processBody: context: %s\n", context.latin1() ); browser->setTextFormat(RichText); + browser->mimeSourceFactory()->setFilePath(context); browser->setText(body, context); - printf("%s\n", context.latin1() ); } |