/** * [DFS Root referral request] Issue a DFS root referral request, as specified in section 3.1.4.2, * providing "ROOT", the first path component, UserCredentials, MaxOutputSize, and Path as parameters. * The processing of the referral response and/or error is as specified in section 3.1.5.4.3, which will update the ReferralCache * on success. On DFS root referral request success, go to step 7. * On DFS root referral request failure: * 1. If the immediately preceding processing step was step 5.2.3, this is a domain name or path. Go to step 13. * 2. If processing of this I/O request encountered a ReferralCache hit, or one of its DFS referral requests succeeded * (as would have occurred in the case of a previous Interlink - see step 11 - or a domain root referral, * when entering from step 5), the path is in a DFS namespace. Go to step 14. * 3. The path is not a DFS path and no further processing is required. Go to step 12. */ private DFSPath step6(Session session, ResolveState state) throws DFSException { logger.trace("DFS[6]: {}", state); ReferralResult result = sendDfsReferralRequest(DfsRequestType.ROOT, state.path.getPathComponents().get(0), session, state.path); if (NtStatus.isSuccess(result.status)) { return step7(session, state, result.referralCacheEntry); } if (state.resolvedDomainEntry) { // Came from 5.2.3 return step13(session, state, result); } if (state.isDFSPath) { return step14(session, state, result); } return step12(state); }
/** * [DFS Root referral request] Issue a DFS root referral request, as specified in section 3.1.4.2, * providing "ROOT", the first path component, UserCredentials, MaxOutputSize, and Path as parameters. * The processing of the referral response and/or error is as specified in section 3.1.5.4.3, which will update the ReferralCache * on success. On DFS root referral request success, go to step 7. * On DFS root referral request failure: * 1. If the immediately preceding processing step was step 5.2.3, this is a domain name or path. Go to step 13. * 2. If processing of this I/O request encountered a ReferralCache hit, or one of its DFS referral requests succeeded * (as would have occurred in the case of a previous Interlink - see step 11 - or a domain root referral, * when entering from step 5), the path is in a DFS namespace. Go to step 14. * 3. The path is not a DFS path and no further processing is required. Go to step 12. */ private DFSPath step6(Session session, ResolveState state) throws DFSException { logger.trace("DFS[6]: {}", state); ReferralResult result = sendDfsReferralRequest(DfsRequestType.ROOT, state.path.getPathComponents().get(0), session, state.path); if (NtStatus.isSuccess(result.status)) { return step7(session, state, result.referralCacheEntry); } if (state.resolvedDomainEntry) { // Came from 5.2.3 return step13(session, state, result); } if (state.isDFSPath) { return step14(session, state, result); } return step12(state); }