xbits: prepare for non-ippair support

pull/1422/head
Victor Julien 10 years ago
parent dea8dda3c1
commit 8e6453faac

@ -155,6 +155,26 @@ static int DetectIPPairbitMatchIsnotset (Packet *p, const DetectXbitsData *fd)
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
@ -167,22 +187,13 @@ int DetectXbitMatch (ThreadVars *t, DetectEngineThreadCtx *det_ctx, Packet *p, S
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;
}

Loading…
Cancel
Save