author | spiralman <spiralman> | 2002-08-02 21:09:06 (UTC) |
---|---|---|
committer | spiralman <spiralman> | 2002-08-02 21:09:06 (UTC) |
commit | b228f8134306f469ec78ae8ab00ea5fdc0853538 (patch) (side-by-side diff) | |
tree | efaedf7f15eb661665a71b678f6a07ce22a25c95 | |
parent | d3a54af5288cd30fc1a4f2dafc9f848b245046d6 (diff) | |
download | opie-b228f8134306f469ec78ae8ab00ea5fdc0853538.zip opie-b228f8134306f469ec78ae8ab00ea5fdc0853538.tar.gz opie-b228f8134306f469ec78ae8ab00ea5fdc0853538.tar.bz2 |
fixed some bugs in chunked encoding stuff, but it still doesnt work. feels very close though...
-rw-r--r-- | noncore/net/ubrowser/httpcomm.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/noncore/net/ubrowser/httpcomm.cpp b/noncore/net/ubrowser/httpcomm.cpp index b086b58..3c14053 100644 --- a/noncore/net/ubrowser/httpcomm.cpp +++ b/noncore/net/ubrowser/httpcomm.cpp @@ -151,4 +151,5 @@ void HttpComm::incoming() clength = sclength.toUInt(0, 16); printf("HttpComm::Incoming: chunk length: %d\n", clength); + printf("HttpComm::Incoming: chunk length string: %s\n", sclength.latin1()); //end of data if(clength==0) @@ -161,5 +162,5 @@ void HttpComm::incoming() if(ba <= j) { - status=1; + status=2; done=true; break; @@ -188,5 +189,5 @@ void HttpComm::incoming() printf("HttpComm::incoming: end new body piece 1.\n"); status=0; - j=clength-bRead; + tempQString = tempQString.remove(0, clength); done=false; // break; @@ -195,6 +196,15 @@ void HttpComm::incoming() else { - body+=tempQString; - bRead+=tempQString.length(); + if(tempQString.length() <= ba) + { + body+=tempQString; + bRead+=tempQString.length(); + } + else + { + tempQString.truncate(ba); + body+=tempQString; + bRead+=tempQString.length(); + } printf("HttpComm::incoming: start new body piece 2: \n"); printf("%s", tempQString.latin1() ); @@ -218,5 +228,5 @@ void HttpComm::incoming() printf("HttpComm::incoming: end new body piece 3.\n"); status=0; - j=clength-bRead; + tempQString = tempQString.remove(0, clength); done=false; // break; @@ -225,6 +235,15 @@ void HttpComm::incoming() else { - body+=tempQString; - bRead+=tempQString.length(); + if(tempQString.length() <= ba) + { + body+=tempQString; + bRead+=tempQString.length(); + } + else + { + tempQString.truncate(ba); + body+=tempQString; + bRead+=tempQString.length(); + } printf("HttpComm::incoming: start new body piece 4: \n"); printf("%s", tempQString.latin1() ); |