nsresult nsHttpAuthCache::GetAuthEntryForPath(const char *scheme, const char *host, PRInt32 port, const char *path, nsHttpAuthEntry **entry) { LOG(("nsHttpAuthCache::GetAuthEntryForPath [key=%s://%s:%d path=%s]\n", scheme, host, port, path)); nsCAutoString key; nsHttpAuthNode *node = LookupAuthNode(scheme, host, port, key); if (!node) return NS_ERROR_NOT_AVAILABLE; *entry = node->LookupEntryByPath(path); return *entry ? NS_OK : NS_ERROR_NOT_AVAILABLE; }
nsresult nsHttpAuthCache::GetAuthEntryForDomain(const char *scheme, const char *host, PRInt32 port, const char *realm, nsHttpAuthEntry **entry) { LOG(("nsHttpAuthCache::GetAuthEntryForDomain [key=%s://%s:%d realm=%s]\n", scheme, host, port, realm)); nsCAutoString key; nsHttpAuthNode *node = LookupAuthNode(scheme, host, port, key); if (!node) return NS_ERROR_NOT_AVAILABLE; *entry = node->LookupEntryByRealm(realm); return *entry ? NS_OK : NS_ERROR_NOT_AVAILABLE; }
nsresult nsHttpAuthCache::GetAuthEntryForPath(const char *scheme, const char *host, int32_t port, const char *path, uint32_t appId, bool inBrowserElement, nsHttpAuthEntry **entry) { LOG(("nsHttpAuthCache::GetAuthEntryForPath [key=%s://%s:%d path=%s]\n", scheme, host, port, path)); nsAutoCString key; nsHttpAuthNode *node = LookupAuthNode(scheme, host, port, appId, inBrowserElement, key); if (!node) return NS_ERROR_NOT_AVAILABLE; *entry = node->LookupEntryByPath(path); return *entry ? NS_OK : NS_ERROR_NOT_AVAILABLE; }
nsresult nsHttpAuthCache::SetAuthEntry(const char *scheme, const char *host, int32_t port, const char *path, const char *realm, const char *creds, const char *challenge, uint32_t appId, bool inBrowserElement, const nsHttpAuthIdentity *ident, nsISupports *metadata) { nsresult rv; LOG(("nsHttpAuthCache::SetAuthEntry [key=%s://%s:%d realm=%s path=%s metadata=%x]\n", scheme, host, port, realm, path, metadata)); if (!mDB) { rv = Init(); if (NS_FAILED(rv)) return rv; } nsAutoCString key; nsHttpAuthNode *node = LookupAuthNode(scheme, host, port, appId, inBrowserElement, key); if (!node) { // create a new entry node and set the given entry node = new nsHttpAuthNode(); if (!node) return NS_ERROR_OUT_OF_MEMORY; rv = node->SetAuthEntry(path, realm, creds, challenge, ident, metadata); if (NS_FAILED(rv)) delete node; else PL_HashTableAdd(mDB, strdup(key.get()), node); return rv; } return node->SetAuthEntry(path, realm, creds, challenge, ident, metadata); }