summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 08:37:48 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 08:37:48 +0000
commit5a77df516e9d4845b952fad62e78fda9e0498bd2 (patch)
treebd942c09d769c2de495f0830f8a0dbf78a9bc528 /crypto
parentc2c40803f5b5333def98dcb031cf16d26bbf4ae3 (diff)
downloadchromium_src-5a77df516e9d4845b952fad62e78fda9e0498bd2.zip
chromium_src-5a77df516e9d4845b952fad62e78fda9e0498bd2.tar.gz
chromium_src-5a77df516e9d4845b952fad62e78fda9e0498bd2.tar.bz2
Use file_util::GetFileSystemType() in crypto/nss_util.cc.
Review URL: https://codereview.chromium.org/147933003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248923 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'crypto')
-rw-r--r--crypto/nss_util.cc37
1 files changed, 19 insertions, 18 deletions
diff --git a/crypto/nss_util.cc b/crypto/nss_util.cc
index 7de6cb0..4d4a8f7 100644
--- a/crypto/nss_util.cc
+++ b/crypto/nss_util.cc
@@ -13,10 +13,7 @@
#include <prtime.h>
#include <secmod.h>
-#if defined(OS_LINUX)
-#include <linux/nfs_fs.h>
-#include <sys/vfs.h>
-#elif defined(OS_OPENBSD)
+#if defined(OS_OPENBSD)
#include <sys/mount.h>
#include <sys/param.h>
#endif
@@ -147,21 +144,25 @@ char* PKCS11PasswordFunc(PK11SlotInfo* slot, PRBool retry, void* arg) {
// Because this function sets an environment variable it must be run before we
// go multi-threaded.
void UseLocalCacheOfNSSDatabaseIfNFS(const base::FilePath& database_dir) {
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
- struct statfs buf;
- if (statfs(database_dir.value().c_str(), &buf) == 0) {
+ bool db_on_nfs = false;
#if defined(OS_LINUX)
- if (buf.f_type == NFS_SUPER_MAGIC) {
+ file_util::FileSystemType fs_type = file_util::FILE_SYSTEM_UNKNOWN;
+ if (file_util::GetFileSystemType(database_dir, &fs_type))
+ db_on_nfs = (fs_type == file_util::FILE_SYSTEM_NFS);
#elif defined(OS_OPENBSD)
- if (strcmp(buf.f_fstypename, MOUNT_NFS) == 0) {
+ struct statfs buf;
+ if (statfs(database_dir.value().c_str(), &buf) == 0)
+ db_on_nfs = (strcmp(buf.f_fstypename, MOUNT_NFS) == 0);
+#else
+ NOTIMPLEMENTED();
#endif
- scoped_ptr<base::Environment> env(base::Environment::Create());
- const char* use_cache_env_var = "NSS_SDB_USE_CACHE";
- if (!env->HasVar(use_cache_env_var))
- env->SetVar(use_cache_env_var, "yes");
- }
+
+ if (db_on_nfs) {
+ scoped_ptr<base::Environment> env(base::Environment::Create());
+ static const char kUseCacheEnvVar[] = "NSS_SDB_USE_CACHE";
+ if (!env->HasVar(kUseCacheEnvVar))
+ env->SetVar(kUseCacheEnvVar, "yes");
}
-#endif // defined(OS_LINUX) || defined(OS_OPENBSD)
}
#endif // defined(USE_NSS)
@@ -909,10 +910,10 @@ void LoadNSSLibraries() {
paths.push_back(base::FilePath("/usr/lib/arm-linux-gnueabihf/nss"));
#else
paths.push_back(base::FilePath("/usr/lib/arm-linux-gnueabi/nss"));
-#endif
+#endif // defined(__ARM_PCS_VFP)
#elif defined(ARCH_CPU_MIPSEL)
paths.push_back(base::FilePath("/usr/lib/mipsel-linux-gnu/nss"));
-#endif
+#endif // defined(ARCH_CPU_X86_64)
// A list of library files to load.
std::vector<std::string> libs;
@@ -938,7 +939,7 @@ void LoadNSSLibraries() {
} else {
LOG(ERROR) << "Failed to load NSS libraries.";
}
-#endif
+#endif // defined(USE_NSS)
}
bool CheckNSSVersion(const char* version) {