Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try next DFS referral if fail to find link referral #316

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

andrew-oberstar
Copy link

While getReferralTransport() deals with the use case of a failed connection to the referred server, it does not address a successful connection that subsequently fails while calling getReferral().

There are probably a number of ways this could occur, but in our case one set of servers where failing with SmbUnsupportedOperationExceptions during getReferral(), due to misconfig on the namespace server. In the prior logic, this would cause an immediate failure to find the link, rather than trying the other referrals received from the getRootReferral().

The new logic follows the pattern used in getReferralTransport() to loop until we either succeed and break out or follow the referrals all the way back to the first option.

While getReferralTransport() deals with the use case of a failed
connection to the referred server, it does not address a successful
connection that subsequently fails while calling getReferral.

There are probably a number of ways this could occur, but in our
case one set of servers where failing with
SmbUnsupportedOperationExceptions during getReferral, due to
misconfig. In the prior logic, this would cause an immediate
failure to find the link, rather than trying the other referrals
received from the getRootReferral.

The new logic follows the pattern used in getReferralTransport to
loop until we either succeed and break out or follow the referrals
all the way back to the first option.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant