[jcifs] Cannot assign requested address

Mathias Dietz MDIETZ at de.ibm.com
Wed Aug 10 15:39:06 GMT 2005

with jcifs 1.2.1 I get the following error message when I try to connect to
a samba share. (using fedora core 4 and java 1.5)
java.net.SocketException: Invalid argument or cannot assign requested
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:228)
      at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:266)
      at jcifs.util.transport.Transport.run(Transport.java:204)
      at java.lang.Thread.run(Thread.java:568)

After some testing and debugging I found that the problem does not occur
with jcifs 1.1.11.
With jcifs 1.2.1 the config class has been changed to the following:

    public static InetAddress getLocalHost() {
        String addr = prp.getProperty( "jcifs.smb.client.laddr" );
        try {
            if( addr == null ) {
  --->>>            return InetAddress.getLocalHost();     <<<----
            return InetAddress.getByName( addr );
        } catch( UnknownHostException uhe ) {
            if( log.level > 0 ) {
                log.println( addr );
                uhe.printStackTrace( log );
        }   }
        return null;

If no jcifs.smb.client.laddr is specified, then localhost/ is
returned and
SMBTransport uses the returned value to create a socket.
 ->>  socket = new Socket( address.getHostAddress(), port, localAddr,
localPort );

This is not possible because the samba server is not reachable via (NoRouteToHost!).

Could someone fix this bug ? Possible solutions:
      A) change the Config.getLocalHost() method to return null if no
jcifs.smb.client.laddr is specified
      B) change SMBTransport and replace LADDR with Config.getInetAddress(
"jcifs.smb.client.laddr", null )  (jcifs 1.1.11 like)

Question: Where is the most current JCIFS version ? Does a CVS or SVN
repository exist ?

mit freundlichen Grüßen / best regards

Mathias Dietz

Software Development                              Dept. A182
IBM Deutschland GmbH
Hechtsheimer Strasse 2  Geb.83
D-55131 Mainz
Phone (+49)-6131-84-2027
Fax (+49)-6131-84-3111
E-Mail : MDietz at de.ibm.com
IBM Certified Professional Server Specialist
Visit Open Enterprise System Virtualization:
IBM intranet ---> http://w3.ais.mainz.de.ibm.com/stonehenge/

More information about the jcifs mailing list