fix - we need to set direction flags for reassembly pseudo packet. Also reset local flags for every flow that is force reassembled in ForQ

remotes/origin/master-1.1.x
Anoop Saldanha 14 years ago committed by Victor Julien
parent 4ef3679b13
commit d4ba869a35

@ -1387,8 +1387,8 @@ static inline void FlowForceReassemblyForQ(FlowQueue *q)
{ {
Flow *f; Flow *f;
TcpSession *ssn; TcpSession *ssn;
int client_ok = 0; int client_ok;
int server_ok = 0; int server_ok;
/* no locks needed, since the engine is virtually dead. /* no locks needed, since the engine is virtually dead.
* We are the kings here */ * We are the kings here */
@ -1406,6 +1406,9 @@ static inline void FlowForceReassemblyForQ(FlowQueue *q)
Packet reassemble_p; Packet reassemble_p;
memset(&reassemble_p, 0, sizeof(Packet)); memset(&reassemble_p, 0, sizeof(Packet));
client_ok = 0;
server_ok = 0;
/* Get the tcp session for the flow */ /* Get the tcp session for the flow */
ssn = (TcpSession *)f->protoctx; ssn = (TcpSession *)f->protoctx;
@ -1428,6 +1431,7 @@ static inline void FlowForceReassemblyForQ(FlowQueue *q)
ssn->client.seg_list_tail->payload_len); ssn->client.seg_list_tail->payload_len);
reassemble_p.flow = f; reassemble_p.flow = f;
reassemble_p.flags |= PKT_PSEUDO_STREAM_END; reassemble_p.flags |= PKT_PSEUDO_STREAM_END;
reassemble_p.flowflags = FLOW_PKT_TOCLIENT;
StreamTcpReassembleHandleSegment(stream_pseudo_pkt_detect_TV, StreamTcpReassembleHandleSegment(stream_pseudo_pkt_detect_TV,
stt->ra_ctx, ssn, &ssn->server, stt->ra_ctx, ssn, &ssn->server,
&reassemble_p, NULL); &reassemble_p, NULL);
@ -1445,6 +1449,7 @@ static inline void FlowForceReassemblyForQ(FlowQueue *q)
ssn->server.seg_list_tail->payload_len); ssn->server.seg_list_tail->payload_len);
reassemble_p.flow = f; reassemble_p.flow = f;
reassemble_p.flags |= PKT_PSEUDO_STREAM_END; reassemble_p.flags |= PKT_PSEUDO_STREAM_END;
reassemble_p.flowflags = FLOW_PKT_TOSERVER;
StreamTcpReassembleHandleSegment(stream_pseudo_pkt_detect_TV, StreamTcpReassembleHandleSegment(stream_pseudo_pkt_detect_TV,
stt->ra_ctx, ssn, &ssn->client, stt->ra_ctx, ssn, &ssn->client,
&reassemble_p, NULL); &reassemble_p, NULL);

Loading…
Cancel
Save