[jcifs] Connection bug in jarapac?
Martin D. Pedersen
mdp at visanti.com
Mon Oct 18 07:16:58 GMT 2004
Hi
I'm playing with the examples in jarapac.
They seems to work fine when connecting to a Samba server.
But when I connect to a Windows 2000 or 2003 server, I get an :
jcfis.smb.SmbException : No process is on the other end of the pipe.
I figured that something is causing the server side to close the connection.
With some Ethereal debugging i tracked the problem down to:
rpc.ConnectionOrientedEndpoint:connect()
private void connect() throws IOException {
bound = true;
try {
context = createContext();
ConnectionOrientedPdu pdu = context.init(
new PresentationContext(0, getSyntax()),
getTransport().getProperties());
if (pdu != null)
send(pdu);
while (!context.isEstablished()) {
if ((pdu = context.accept(receive())) != null)
--> send(pdu);
At this point jarapac sends and Auth3 response, which causes the server
to return a nca_proto_error.
When the example then tries to eg. call NetrShareEnum it receives a
STATUS_PIPE_DISCONNECT.
A simple hack to get up and running seems to be to remove the send(pdu)
statement.
[...]
while (!context.isEstablished()) {
pdu = context.accept(receive());
}
[...]
The jarapac is now able to connect both to Samba,Win2000 and Win2003.
But I'm not at all into the SMB protocol, so this might not at all be a
working fix
-- mdp
More information about the jcifs
mailing list