nsresult nsHttpAuthNode::SetAuthEntry(const char *path, const char *realm, const char *creds, const char *challenge, const nsHttpAuthIdentity *ident, nsISupports *metadata) { // look for an entry with a matching realm nsHttpAuthEntry *entry = LookupEntryByRealm(realm); if (!entry) { entry = new nsHttpAuthEntry(path, realm, creds, challenge, ident, metadata); if (!entry) return NS_ERROR_OUT_OF_MEMORY; // We want the latest identity be at the begining of the list so that // the newest working credentials are sent first on new requests. // Changing a realm is sometimes used to "timeout" authrozization. mList.InsertElementAt(0, entry); } else { // update the entry... entry->Set(path, realm, creds, challenge, ident, metadata); } return NS_OK; }
void nsHttpAuthNode::ClearAuthEntry(const char *realm) { nsHttpAuthEntry *entry = LookupEntryByRealm(realm); if (entry) { mList.RemoveElement(entry); // double search OK } }
nsresult nsHttpAuthNode::SetAuthEntry(const char *path, const char *realm, const char *creds, const char *challenge, const nsHttpAuthIdentity *ident, nsISupports *metadata) { // look for an entry with a matching realm nsHttpAuthEntry *entry = LookupEntryByRealm(realm); if (!entry) { entry = new nsHttpAuthEntry(path, realm, creds, challenge, ident, metadata); if (!entry) return NS_ERROR_OUT_OF_MEMORY; mList.AppendElement(entry); } else { // update the entry... entry->Set(path, realm, creds, challenge, ident, metadata); } return NS_OK; }