@Override public SmbPath resolve(Session session, SmbPath smbPath) throws PathResolveException { SmbPath target = SmbPath.parse(resolve(session, smbPath.toUncPath())); if (!smbPath.equals(target)) { logger.info("DFS resolved {} -> {}", smbPath, target); return target; } return wrapped.resolve(session, smbPath); }
@Override public SmbPath resolve(Session session, SmbPath smbPath) throws PathResolveException { SmbPath target = SmbPath.parse(resolve(session, smbPath.toUncPath())); if (!smbPath.equals(target)) { logger.info("DFS resolved {} -> {}", smbPath, target); return target; } return wrapped.resolve(session, smbPath); }
@Override public SmbPath resolve(Session session, SMB2Packet responsePacket, SmbPath smbPath) throws PathResolveException { if (smbPath.getPath() != null && responsePacket.getHeader().getStatusCode() == NtStatus.STATUS_PATH_NOT_COVERED.getValue()) { logger.info("DFS Share {} does not cover {}, resolve through DFS", smbPath.getShareName(), smbPath); SmbPath target = SmbPath.parse(resolve(session, smbPath.toUncPath())); logger.info("DFS resolved {} -> {}", smbPath, target); return target; } else if (smbPath.getPath() == null && NtStatus.isError(responsePacket.getHeader().getStatusCode())) { logger.info("Attempting to resolve {} through DFS", smbPath); return SmbPath.parse(resolve(session, smbPath.toUncPath())); } return wrapped.resolve(session, responsePacket, smbPath); }
@Override public SmbPath resolve(Session session, SMB2Packet responsePacket, SmbPath smbPath) throws PathResolveException { if (smbPath.getPath() != null && responsePacket.getHeader().getStatusCode() == NtStatus.STATUS_PATH_NOT_COVERED.getValue()) { logger.info("DFS Share {} does not cover {}, resolve through DFS", smbPath.getShareName(), smbPath); SmbPath target = SmbPath.parse(resolve(session, smbPath.toUncPath())); logger.info("DFS resolved {} -> {}", smbPath, target); return target; } else if (smbPath.getPath() == null && NtStatus.isError(responsePacket.getHeader().getStatusCode())) { logger.info("Attempting to resolve {} through DFS", smbPath); return SmbPath.parse(resolve(session, smbPath.toUncPath())); } return wrapped.resolve(session, responsePacket, smbPath); }