switch(rd->cmd) {
case DETECT_IPREP_CMD_ANY:
val = GetHostRepSrc(p, rd->cat, version);
+ if (val == 0)
+ val = SRepCIDRGetIPRepSrc(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val > 0) {
if (RepMatch(rd->op, val, rd->val) == 1)
return 1;
}
val = GetHostRepDst(p, rd->cat, version);
+ if (val == 0)
+ val = SRepCIDRGetIPRepDst(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val > 0) {
return RepMatch(rd->op, val, rd->val);
}
case DETECT_IPREP_CMD_SRC:
val = GetHostRepSrc(p, rd->cat, version);
SCLogDebug("checking src -- val %u (looking for cat %u, val %u)", val, rd->cat, rd->val);
+ if (val == 0)
+ val = SRepCIDRGetIPRepSrc(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val > 0) {
return RepMatch(rd->op, val, rd->val);
}
case DETECT_IPREP_CMD_DST:
SCLogDebug("checking dst");
val = GetHostRepDst(p, rd->cat, version);
+ if (val == 0)
+ val = SRepCIDRGetIPRepDst(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val > 0) {
return RepMatch(rd->op, val, rd->val);
}
case DETECT_IPREP_CMD_BOTH:
val = GetHostRepSrc(p, rd->cat, version);
+ if (val == 0)
+ val = SRepCIDRGetIPRepSrc(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val == 0 || RepMatch(rd->op, val, rd->val) == 0)
return 0;
val = GetHostRepDst(p, rd->cat, version);
+ if (val == 0)
+ val = SRepCIDRGetIPRepDst(det_ctx->de_ctx->srepCIDR_ctx, p, rd->cat, version);
if (val > 0) {
return RepMatch(rd->op, val, rd->val);
}