/* return true even if bit not found */ static int DetectIPPairbitMatchUnset (Packet *p, const DetectXbitsData *fd) { IPPair *pair = IPPairLookupIPPairFromHash(&p->src, &p->dst); if (pair == NULL) return 1; IPPairBitUnset(pair,fd->idx); IPPairRelease(pair); return 1; }
static int DetectIPPairbitMatchIsnotset (Packet *p, const DetectXbitsData *fd) { int r = 0; IPPair *pair = IPPairLookupIPPairFromHash(&p->src, &p->dst); if (pair == NULL) return 1; r = IPPairBitIsnotset(pair,fd->idx,p->ts.tv_sec); IPPairRelease(pair); return r; }
static Expectation *AppLayerExpectationLookup(Flow *f, int direction, IPPair **ipp) { Address ip_src, ip_dst; if (GetFlowAddresses(f, &ip_src, &ip_dst) == -1) return NULL; *ipp = IPPairLookupIPPairFromHash(&ip_src, &ip_dst); if (*ipp == NULL) { return NULL; } return IPPairGetStorageById(*ipp, g_expectation_id); }