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

Michael B. Allen miallen at eskimo.com
Tue Oct 8 17:38:47 EST 2002


On Mon, 7 Oct 2002 12:30:43 -0500
"Christopher R. Hertel" <crh at ubiqx.mn.org> wrote:

> 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.

The  rfc  suggests  the  double  slashes  are  for network paths opposed to
absolute  paths which use one slash. You have nothing else to add? I'm sort
of  stuck  until  I get this worked out. I sent a message to the uri at w3.org
mailing  list.  You  can  subscribe with uri-request at w3.org or  look at the
archives here: 

  http://lists.w3.org/Archives/Public/uri/

> 
> 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.
> 
> Maybe.
> 
> 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


-- 
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. 



More information about the jcifs mailing list