Diffstat (limited to 'noncore/net/ubrowser/httpcomm.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/ubrowser/httpcomm.cpp | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/noncore/net/ubrowser/httpcomm.cpp b/noncore/net/ubrowser/httpcomm.cpp index 51068db..54f7acf 100644 --- a/noncore/net/ubrowser/httpcomm.cpp +++ b/noncore/net/ubrowser/httpcomm.cpp | |||
@@ -138,3 +138,4 @@ void HttpComm::incoming() | |||
138 | { | 138 | { |
139 | tempQString.remove(0, j); | 139 | tempQString.remove(0, j+1); |
140 | printf("HttpComm::incoming: removing http header. Result: \n%s", tempQString.latin1()); | ||
140 | } | 141 | } |
@@ -151,2 +152,3 @@ void HttpComm::incoming() | |||
151 | printf("HttpComm::Incoming: chunk length: %d\n", clength); | 152 | printf("HttpComm::Incoming: chunk length: %d\n", clength); |
153 | //end of data | ||
152 | if(clength==0) | 154 | if(clength==0) |
@@ -156,2 +158,3 @@ void HttpComm::incoming() | |||
156 | } | 158 | } |
159 | //still more, but it hasnt been recieved yet | ||
157 | if(ba <= j) | 160 | if(ba <= j) |
@@ -160,4 +163,5 @@ void HttpComm::incoming() | |||
160 | done=true; | 163 | done=true; |
161 | // break; | 164 | break; |
162 | } | 165 | } |
166 | //still more data waiting | ||
163 | else | 167 | else |
@@ -165,5 +169,7 @@ void HttpComm::incoming() | |||
165 | done=false; | 169 | done=false; |
170 | //remove the chunk length header | ||
171 | tempQString.remove(0,j+1); | ||
166 | } | 172 | } |
167 | bRead=0; | 173 | bRead=0; |
168 | break; | 174 | // break; |
169 | //if there is more fall through to: | 175 | //if there is more fall through to: |
@@ -176,2 +182,3 @@ void HttpComm::incoming() | |||
176 | newTQstring.truncate(clength-bRead); | 182 | newTQstring.truncate(clength-bRead); |
183 | bRead+=newTQstring.length(); | ||
177 | body+=newTQstring; | 184 | body+=newTQstring; |
@@ -183,3 +190,3 @@ void HttpComm::incoming() | |||
183 | done=false; | 190 | done=false; |
184 | break; | 191 | // break; |
185 | } | 192 | } |
@@ -194,3 +201,34 @@ void HttpComm::incoming() | |||
194 | done=true; | 201 | done=true; |
202 | status=2; | ||
203 | // break; | ||
204 | } | ||
195 | break; | 205 | break; |
206 | //just got data in, continue reading chunk | ||
207 | case 2: | ||
208 | //the current data extends beyond the end of the chunk | ||
209 | if(bRead + tempQString.length() > clength) | ||
210 | { | ||
211 | QString newTQstring = tempQString; | ||
212 | newTQstring.truncate(clength-bRead); | ||
213 | bRead+=newTQstring.length(); | ||
214 | body+=newTQstring; | ||
215 | printf("HttpComm::incoming: start new body piece 3: \n"); | ||
216 | printf("%s", newTQstring.latin1() ); | ||
217 | printf("HttpComm::incoming: end new body piece 3.\n"); | ||
218 | status=0; | ||
219 | j=clength-bRead; | ||
220 | done=false; | ||
221 | // break; | ||
222 | } | ||
223 | //the chunk extends beyond the current data; | ||
224 | else | ||
225 | { | ||
226 | body+=tempQString; | ||
227 | bRead+=ba; | ||
228 | printf("HttpComm::incoming: start new body piece 4: \n"); | ||
229 | printf("%s", tempQString.latin1() ); | ||
230 | printf("HttpComm::incoming: end new body piece 4.\n"); | ||
231 | done=true; | ||
232 | status=2; | ||
233 | // break; | ||
196 | } | 234 | } |
@@ -198,2 +236,3 @@ void HttpComm::incoming() | |||
198 | } | 236 | } |
237 | printf("HttpComm::incoming: chunked encoding: bRead: %d\n", bRead); | ||
199 | } | 238 | } |