Add per TX id. Rename transaction_cnt to transaction_max (id) and increment it on tx creation.
tx = DNSTransactionAlloc(tx_id);
if (tx == NULL)
return;
+ dns_state->transaction_max++;
+ SCLogDebug("dns_state->transaction_max updated to %u", dns_state->transaction_max);
TAILQ_INSERT_TAIL(&dns_state->tx_list, tx, next);
dns_state->curr = tx;
+ tx->tx_num = dns_state->transaction_max;
+ SCLogDebug("new tx %u with internal id %u", tx->tx_id, tx->tx_num);
}
DNSQueryEntry *q = SCMalloc(sizeof(DNSQueryEntry) + fqdn_len);
return;
TAILQ_INSERT_TAIL(&dns_state->tx_list, tx, next);
dns_state->curr = tx;
- }
+ tx->tx_num = dns_state->transaction_max;
- dns_state->transaction_cnt++;
- SCLogDebug("dns_state->transaction_cnt %u", dns_state->transaction_cnt);
+ }
DNSAnswerEntry *q = SCMalloc(sizeof(DNSAnswerEntry) + fqdn_len + data_len);
if (q == NULL)
/** \brief DNS Transaction, request/reply with same TX id. */
typedef struct DNSTransaction_ {
+ uint16_t tx_num; /**< internal: id */
uint16_t tx_id; /**< transaction id */
uint16_t replied; /**< bool indicating request is
replied to. */
typedef struct DNSState_ {
TAILQ_HEAD(, DNSTransaction_) tx_list; /**< transaction list */
DNSTransaction *curr; /**< ptr to current tx */
- uint16_t transaction_cnt;
+ uint16_t transaction_max;
uint16_t transaction_done;
/* used by TCP only */
DNSState *s = state;
- SCLogDebug("original id %"PRIu16", s->transaction_cnt %"PRIu16,
- *id, (s->transaction_cnt));
+ SCLogDebug("original id %"PRIu16", s->transaction_max %"PRIu16,
+ *id, (s->transaction_max));
- if ((s->transaction_cnt) > (*id)) {
+ if ((s->transaction_max) > (*id)) {
SCLogDebug("original id %"PRIu16", updating with s->transaction_cnt %"PRIu16,
- *id, (s->transaction_cnt));
+ *id, (s->transaction_max));
- (*id) = (s->transaction_cnt);
+ (*id) = (s->transaction_max);
SCLogDebug("updated id %"PRIu16, *id);
}
DNSState *s = state;
- SCLogDebug("original id %"PRIu16", s->transaction_cnt %"PRIu16,
- *id, (s->transaction_cnt));
+ SCLogDebug("original id %"PRIu16", s->transaction_max %"PRIu16,
+ *id, (s->transaction_max));
- if ((s->transaction_cnt) > (*id)) {
- SCLogDebug("original id %"PRIu16", updating with s->transaction_cnt %"PRIu16,
- *id, (s->transaction_cnt));
+ if ((s->transaction_max) > (*id)) {
+ SCLogDebug("original id %"PRIu16", updating with s->transaction_max %"PRIu16,
+ *id, (s->transaction_max));
- (*id) = (s->transaction_cnt);
+ (*id) = (s->transaction_max);
SCLogDebug("updated id %"PRIu16, *id);
}