|
|
|
|
@ -365,9 +365,10 @@ int ThresholdHandlePacketHost(Host *h, Packet *p, DetectThresholdData *td, uint3
|
|
|
|
|
if (lookup_tsh != NULL) {
|
|
|
|
|
/* Check if we have a timeout enabled, if so,
|
|
|
|
|
* we still matching (and enabling the new_action) */
|
|
|
|
|
if (lookup_tsh->tv_timeout != 0) {
|
|
|
|
|
if ((p->ts.tv_sec - lookup_tsh->tv_timeout) > td->timeout) {
|
|
|
|
|
/* Ok, we are done, timeout reached */
|
|
|
|
|
td->timeout = 0;
|
|
|
|
|
lookup_tsh->tv_timeout = 0;
|
|
|
|
|
} else {
|
|
|
|
|
/* Already matching */
|
|
|
|
|
/* Take the action to perform */
|
|
|
|
|
@ -389,8 +390,9 @@ int ThresholdHandlePacketHost(Host *h, Packet *p, DetectThresholdData *td, uint3
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
ret = 1;
|
|
|
|
|
}
|
|
|
|
|
} /* else - if ((p->ts.tv_sec - lookup_tsh->tv_timeout) > td->timeout) */
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
/* Update the matching state with the timeout interval */
|
|
|
|
|
if ( (p->ts.tv_sec - lookup_tsh->tv_sec1) < td->seconds) {
|
|
|
|
|
lookup_tsh->current_count++;
|
|
|
|
|
@ -422,6 +424,7 @@ int ThresholdHandlePacketHost(Host *h, Packet *p, DetectThresholdData *td, uint3
|
|
|
|
|
lookup_tsh->tv_sec1 = p->ts.tv_sec;
|
|
|
|
|
lookup_tsh->current_count = 1;
|
|
|
|
|
}
|
|
|
|
|
} /* else - if (lookup_tsh->tv_timeout != 0) */
|
|
|
|
|
} else {
|
|
|
|
|
if (td->count == 1) {
|
|
|
|
|
ret = 1;
|
|
|
|
|
|