sr=rpotts, r=gagan. 70743. switching over to new extensible URI::SchemeIs() api. and changing existing implementations over to new api. also modified nsHTTP and nsHTTPS handlers a bit to make things cleaner.

git-svn-id: svn://10.0.0.236/trunk@89421 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
valeski%netscape.com
2001-03-13 02:01:07 +00:00
parent 0cea9abfef
commit 3dcd14eede
18 changed files with 71 additions and 148 deletions

View File

@@ -30,8 +30,7 @@ static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
////////////////////////////////////////////////////////////////////////////////
nsJARURI::nsJARURI()
: mJAREntry(nsnull),
mSchemeType(nsIURI::JAR)
: mJAREntry(nsnull)
{
NS_INIT_REFCNT();
}
@@ -116,7 +115,6 @@ nsJARURI::SetSpec(const char * aSpec)
if (nsCRT::strncmp("jar", &aSpec[startPos], endPos - startPos - 1) != 0)
return NS_ERROR_MALFORMED_URI;
mSchemeType = nsIURI::JAR;
// Search backward from the end for the "!/" delimiter. Remember, jar URLs
// can nest, e.g.:
// jar:jar:http://www.foo.com/bar.jar!/a.jar!/b.html
@@ -277,12 +275,16 @@ nsJARURI::Equals(nsIURI *other, PRBool *result)
}
NS_IMETHODIMP
nsJARURI::SchemeIs(PRUint32 i_Scheme, PRBool *o_Equals)
nsJARURI::SchemeIs(const char *i_Scheme, PRBool *o_Equals)
{
NS_ENSURE_ARG_POINTER(o_Equals);
if (i_Scheme == nsIURI::UNKNOWN)
return NS_ERROR_INVALID_ARG;
*o_Equals = (mSchemeType == i_Scheme);
if (!i_Scheme) return NS_ERROR_INVALID_ARG;
if (*i_Scheme == 'j' || *i_Scheme == 'J') {
*o_Equals = PL_strcasecmp("jar", i_Scheme) ? PR_FALSE : PR_TRUE;
} else {
*o_Equals = PR_FALSE;
}
return NS_OK;
}