- From: Josh Cohen <josh@netscape.com>
- Date: Wed, 11 Jun 1997 17:37:01 -0700 (PDT)
- To: Jeffrey Mogul <mogul@pa.dec.com>
- Cc: Josh Cohen <josh@netscape.com>, http-wg@cuckoo.hpl.hp.com
Well,
yeah, I guess we could do that, but to be honest, I think thats more
complicated and error prone than the simple straightforward statement
of "reverse the domain name"
plus memcmp()
Seriously, I knew that this transformation would raise
eyebrows to say the least. But it does provide a non ambiguous
way to clearly specify the order of significance that we really mean.
> Jeffrey Mogul <mogul@pa.dec.com> said:
> then you might not want the string "a.com" to be confused with
> a suffix of "www.a.com". But I think you could probably
> use ".a.com" to specify a suffix, or else allow a __single__
> "*" at the beginning of the domain name (e.g., "*.a.com").
>
> If you follow the former approach (i.e., no "*" involved), then
> the matching algorithm is simply
>
> DoesItMatch(char *scope, char *URL)
> {
> int slen, ulen, offset;
> char *URLsuffix;
>
> slen = strlen(scope);
> ulen = strlen(url);
>
> if (slen > ulen) return(0); /* no match possible */
>
> offset = ulen - slen;
> URLsuffix = &(URL[offset]);
>
> return(memcmp(scope, URLsuffix, slen) == 0);
> }
>
> This is basically O(N) in the length of the strings. It's
> probably cheaper than trying to reverse the order of the components
> of a domain name, which requires some level of actual parsing.
>
> Bottom line: reversal isn't worth it.
>
> -Jeff
-----------------------------------------------------------------------------
Josh Cohen Netscape Communications Corp.
Netscape Fire Department
#include<disclaimer.h>
Server Engineering
josh@netscape.com http://home.netscape.com/people/josh/
-----------------------------------------------------------------------------
Received on Wednesday, 11 June 1997 17:42:16 UTC