}
}
private void processResponseFingerprint(IInjectionModuleContext ctx, HttpUriRequest req, IHttpResponse res, boolean isFirstResponse) {
final IPageFingerprint fp = res.getPageFingerprint();
final IPathState ps = ctx.getPathState();
if(isFirstResponse && !ps.isSureDirectory() && !ps.isRootPath() && ps.matchesPathFingerprint(fp)) {
ctx.debug("First 404 probe identical to parent page");
return;
}
if(!ps.add404Fingerprint(fp)) {
ctx.debug("Failed 404 detection, too many unique 404 signatures received");
ps.setFailed404Detection();
return;
}
final IPathState parent404 = ps.get404Parent();
if((parent404 != null) && !parent404.has404FingerprintMatching(fp)) {
ctx.debug("New 404 signature detected that was not detected on parent");
ctx.responseChecks(req, res);
}
}