return r;
}
+static int DetectXbitMatchIPPair(Packet *p, const DetectXbitsData *xd)
+{
+ switch (xd->cmd) {
+ case DETECT_XBITS_CMD_ISSET:
+ return DetectIPPairbitMatchIsset(p,xd);
+ case DETECT_XBITS_CMD_ISNOTSET:
+ return DetectIPPairbitMatchIsnotset(p,xd);
+ case DETECT_XBITS_CMD_SET:
+ return DetectIPPairbitMatchSet(p,xd);
+ case DETECT_XBITS_CMD_UNSET:
+ return DetectIPPairbitMatchUnset(p,xd);
+ case DETECT_XBITS_CMD_TOGGLE:
+ return DetectIPPairbitMatchToggle(p,xd);
+ default:
+ SCLogError(SC_ERR_UNKNOWN_VALUE, "unknown cmd %" PRIu32 "", xd->cmd);
+ return 0;
+ }
+ return 0;
+}
+
/*
* returns 0: no match
* 1: match
if (fd == NULL)
return 0;
- switch (fd->cmd) {
- case DETECT_XBITS_CMD_ISSET:
- return DetectIPPairbitMatchIsset(p,fd);
- case DETECT_XBITS_CMD_ISNOTSET:
- return DetectIPPairbitMatchIsnotset(p,fd);
- case DETECT_XBITS_CMD_SET:
- return DetectIPPairbitMatchSet(p,fd);
- case DETECT_XBITS_CMD_UNSET:
- return DetectIPPairbitMatchUnset(p,fd);
- case DETECT_XBITS_CMD_TOGGLE:
- return DetectIPPairbitMatchToggle(p,fd);
+ switch (fd->type) {
+ case VAR_TYPE_IPPAIR_BIT:
+ return DetectXbitMatchIPPair(p, (const DetectXbitsData *)fd);
+ break;
default:
- SCLogError(SC_ERR_UNKNOWN_VALUE, "unknown cmd %" PRIu32 "", fd->cmd);
- return 0;
+ break;
}
-
return 0;
}