summaryrefslogtreecommitdiffstats
path: root/net/ftp/ftp_auth_cache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/ftp/ftp_auth_cache.cc')
-rw-r--r--net/ftp/ftp_auth_cache.cc35
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
+