summaryrefslogtreecommitdiff
path: root/noncore/net/ubrowser/httpcomm.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/ubrowser/httpcomm.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/ubrowser/httpcomm.cpp11
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() );
}