summaryrefslogtreecommitdiff
path: root/epan/req_resp_hdrs.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-11-07 13:19:31 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-11-07 13:19:31 +0000
commit5a0ba5b0c72a3c55c44f5517226867a1ed3ee37e (patch)
tree78f6d7ef0628093c192ee591573d27bad24b8399 /epan/req_resp_hdrs.c
parentb3c98fecbc199af177864762bae120570be3af2a (diff)
downloadwireshark-5a0ba5b0c72a3c55c44f5517226867a1ed3ee37e.tar.gz
fix for bug 1200
there used to be a bug in tcp reassembly that even if the dissector only asked for x more bytes from the next segment the entire segment would still be added to reassembly. this caused some issues when there was a new multisegment pdu that started at the end of the segment but this bug was fixed when tcp reassembly was refactored semi-recently. there was also another "bug" in the http reassembly that it would only ask for one more byte at a time when doing reassembly. this did work well however when we still had the bug in tcp reassembly but made wireshark become very very very slow once this tcp bug was fixed since it is very very very slow to reassemble a huge http pdu just one byte at a time. this patch adds partial support (what we need for http which does not use tcp_dissect_pdus() ) for the desegmentation flag : DESEGMENT_ONE_MORE_SEGMENT and also to the http dissector so that reassembly of http headers spanning multiple semgents now become fast again svn path=/trunk/; revision=19859
Diffstat (limited to 'epan/req_resp_hdrs.c')
-rw-r--r--epan/req_resp_hdrs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/epan/req_resp_hdrs.c b/epan/req_resp_hdrs.c
index 5696c51558..8d861ec62a 100644
--- a/epan/req_resp_hdrs.c
+++ b/epan/req_resp_hdrs.c
@@ -107,7 +107,7 @@ req_resp_hdrs_do_reassembly(tvbuff_t *tvb, int offset, packet_info *pinfo,
*/
if (reported_length_remaining < 1) {
pinfo->desegment_offset = offset;
- pinfo->desegment_len = 1;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return FALSE;
}
@@ -124,7 +124,7 @@ req_resp_hdrs_do_reassembly(tvbuff_t *tvb, int offset, packet_info *pinfo,
* byte.
*/
pinfo->desegment_offset = offset;
- pinfo->desegment_len = 1;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return FALSE;
} else if (linelen == 0) {
/*