ssn->server.window);
/* Check if the ACK value is sane and inside the window limit */
- StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
SCLogDebug("ack %u last_ack %u next_seq %u", TCP_GET_ACK(p), ssn->server.last_ack, ssn->server.next_seq);
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
SCLogDebug("ssn %p: ssn->client.window %"PRIu32"", ssn,
ssn->client.window);
- StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->client.next_seq);
ssn->server.window = TCP_GET_WINDOW(p) << ssn->server.wscale;
- StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->server.next_seq);
ssn->client.window = TCP_GET_WINDOW(p) << ssn->client.wscale;
- StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->server.window = TCP_GET_WINDOW(p) << ssn->server.wscale;
}
- StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->client.window = TCP_GET_WINDOW(p) << ssn->client.wscale;
}
- StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->server.window = TCP_GET_WINDOW(p) << ssn->server.wscale;
}
- StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->client.window = TCP_GET_WINDOW(p) << ssn->client.wscale;
}
- StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
if (!retransmission)
ssn->server.window = TCP_GET_WINDOW(p) << ssn->server.wscale;
- StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->server, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);
ssn->client.window = TCP_GET_WINDOW(p) << ssn->client.wscale;
}
- StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
+ if (p->tcph->th_flags & TH_ACK)
+ StreamTcpUpdateLastAck(ssn, &ssn->client, TCP_GET_ACK(p));
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
StreamTcpHandleTimestamp(ssn, p);