[jcifs] Problem with jcifs.UniAddress.isValidDnsName(String)
Michael B Allen
mba2000 at ioplex.com
Fri Oct 7 18:19:45 GMT 2005
On Fri, 7 Oct 2005 07:26:03 -0600
"Spierenburg, Peter" <peter.spierenburg at abridean.com> wrote:
> Greetings,
>
> Forgive me for being obtuse, but I'm not exactly sure what overkill and
> unique mean in this context. Would you mind clarifying?
Meaning using a regular expression to determine if a hostname is actually
an ip address is a little more elaborate than necessary. That routine
is called quite a bit I think so a simple state machine pass would be
more appropriate like.
state = 0
for each character
switch (state) {
case 0:
// check alnum
state = 1
break
case 1:
// check alnum + 055 (whatever that is)
if (not at the end)
break;
state = 2;
case 2:
// etc
...
}
And for being unique I wasn't entirely correct - it is unique Sun's 1.4
JRE (we currently still support 1.3) but it looks like GNU Classpath
does have it.
Mike
> Peter.
>
> -----Original Message-----
> From: Michael B Allen [mailto:mba2000 at ioplex.com]
> Sent: Thursday, October 06, 2005 9:09 PM
> To: Spierenburg, Peter
> Cc: jcifs at lists.samba.org
> Subject: Re: [jcifs] Problem with
> jcifs.UniAddress.isValidDnsName(String)
>
> Overkill and java.util.regex looks a little unique. Come up with
> something lightweight and I'll add patch it.
>
> On Thu, 6 Oct 2005 14:40:32 -0600
> "Spierenburg, Peter" <peter.spierenburg at abridean.com> wrote:
>
> > Greetings,
> >
> > There appears to be a bug in the
> > jcifs.UniAddress.isValidDnsName(String)
> > method. As it stands in the 1.2.5 release, this method rejects dns
> > names which begin with a digit. This is unfortunate since digits are
> > permitted first characters in dns names. As a result, I propose
> > changing the method to use a regular expression:
> >
> > import java.util.regex.Pattern;
> >
> > static boolean isValidDnsName( String hostname ) {
> > Pattern p =
> > Pattern.compile("[a-zA-Z0-9][a-zA-Z0-9\\055]*([\\056][a-zA-Z0-9][a-zA-
> > Z0
> > -9\055]*)*");
> > return p.matcher(hostname).matches(); }
> >
> > which I believe more accurately expresses the nature of dns names.
> >
> > Does this seem reasonable?
> >
> > Peter-Frank Spierenburg.
> >
> >
>
More information about the jcifs
mailing list