[jcifs] java.net.URL for SMB URL not quite right

Christopher R. Hertel crh at ubiqx.mn.org
Tue Oct 8 03:30:43 EST 2002

I need more time to look this through and understand the problem.  My 
knee-jerk reaction is to wonder about the SMB:// part.  It *might* be that 
the proper thing to store is just "SMB:", since there are URLs (eg 
mailto:) that don't use the double slashes.

One suggestion I had from the RFC authors was to use SMB:<workgroup> for 
the browser protocol and SMB://<server> for SMB itself.  I bring that up 
not to discuss the idea itself, but because it highlights my thinking on 
this.  It would seem to me that doing smb:// + foonet/ would be the wrong 
way to build a URL string, but that smb: + //foonet/ would be right.  That 
would explain the behavior of Sun's code.


As I said, I need to understand this better before I provide a "real" 
answer.  Don't count on *anything* above.  I'm just throwing some ideas at 
this point.  ...probably a dangerous thing to do.

Chris -)-----

On Mon, Oct 07, 2002 at 04:44:25AM -0400, Michael B. Allen wrote:
> The  java.net.URL class parses everything ok except for plain 'smb://' URLs
> and URLs derived from them. For example: 
> smb://             --> smb:
> smb:// + foonet/   --> smb:/foonet/
> smb:// + //foonet/ --> smb://foonet/
> smb:////           --> smb://
> You  can  see that this breaks the current model a bit. If a user creates a
> URL with 'smb://' the various java.net.URL.getXxx methods return: 
>    authority: 
>         file: 
>         host: 
>         port: 139
>         path: 
>        query: null
>          ref: null
>     userinfo: null
> externalform: smb:
>       string: smb:
> I  can override the arguments so that passing 'foonet/' is substituted with
> '//foonet/'  before  passing  it  to the default parser. That works ok, and
> makes  sense. I can trap the 'smb://' case and pass 'smb:////' too but this
> gives: 
>    authority: 
>         file: //
>         host: 
>         port: 139
>         path: //
>        query: null
>          ref: null
>     userinfo: null
> externalform: smb://
>       string: smb://
> As  you  can  see  this  hack makes the file and path '//' which makes less
> sense  to me. Does this behavior gibe with your draft and RFC 2396 Chris? I
> find  it  hard  to  believe Sun got it wrong. If java.net.URL is right then
> what should proper semantics be for SMB URLs? 
> -- 
> A  program should be written to model the concepts of the task it
> performs rather than the physical world or a process because this
> maximizes  the  potential  for it to be applied to tasks that are
> conceptually  similar and, more important, to tasks that have not
> yet been conceived. 

Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org

More information about the jcifs mailing list