diff options
Diffstat (limited to 'net/ftp/ftp_auth_cache.cc')
-rw-r--r-- | net/ftp/ftp_auth_cache.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/net/ftp/ftp_auth_cache.cc b/net/ftp/ftp_auth_cache.cc new file mode 100644 index 0000000..8f1d18a --- /dev/null +++ b/net/ftp/ftp_auth_cache.cc @@ -0,0 +1,35 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "net/ftp/ftp_auth_cache.h" + +#include "base/string_util.h" +#include "googleurl/src/gurl.h" + +namespace net { + +AuthData* FtpAuthCache::Lookup(const GURL& origin) { + AuthCacheMap::iterator iter = cache_.find(MakeKey(origin)); + return (iter == cache_.end()) ? NULL : iter->second; +} + +void FtpAuthCache::Add(const GURL& origin, AuthData* value) { + cache_[MakeKey(origin)] = value; + + // TODO(eroman): enforce a maximum number of entries. +} + +void FtpAuthCache::Remove(const GURL& origin) { + cache_.erase(MakeKey(origin)); +} + +// static +FtpAuthCache::AuthCacheKey FtpAuthCache::MakeKey(const GURL& origin) { + DCHECK(origin.SchemeIs("ftp")); + DCHECK(origin.GetOrigin() == origin); + return origin.spec(); +} + +} // namespace net + |