Re: java.io.IOException: Failed to establish session
Michael B Allen <[email protected]> Sat, 13 Jun 2015 02:51:12 -0400
| Newsgroups | gmane.network.samba.java |
|---|---|
| Message-ID | <CAGMFw4h4XL+ARyLqHdG55RFRap99wjEqWg8ay2OXdxdnDsTvng@mail.gmail.com> |
On Fri, Jun 12, 2015 at 4:35 PM, Shon Vella <[email protected]> wrote: > I have a customer that is seeing this exact problem. In his case it appears > that CALLED_NOT_PRESENT is a result of not being able to properly resolve > the ip address to the netbios name so we're working on making sure that the > right name is available. > > With regards to M.D.'s proposed solution, it isn't quite right. ssn139() > loops through the available names for the address, so resetting the port to > 445 on the first CALLED_NOT_PRESENT or NOT_LISTENING_CALLED would be > premature. It need to wait at least until the loop exit, which only happens > after all the names have been tried, though I'm not sure even there is the > right place. I think if it were me I would put the error code in a variable > outside the loop, and then if I even completed the loop, rather than throw > IOError, I would throw NbtException using that error code rather than > throwing IOError. I would than add a catch of NbtException doConnect and > handle it similarly to ConnectException and NoRouteToHostException when the > code is CALLED_NOT_PRESENT or NOT_LISTENING_CALLED. It also seems that an > invalid or incomplete nbt response (e.g. the EOF case) might be also be a > good excuse to try 445 again. I think the best solution would be to just add a jcifs.smb.client.port139.enabled property which defaults to false and causes the connection op to throw an exception instead of trying to failover to 139. I don't think there any any legit servers using port 139 anymore. It was relevant 15 years ago when some old networks had not quite opened up port 445. I don't want to mess with trying to account for the various race conditions surrounding the port 139 failover logic. Mike -- Michael B Allen Java Active Directory Integration http://www.ioplex.com/