diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 08:37:48 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 08:37:48 +0000 |
commit | 5a77df516e9d4845b952fad62e78fda9e0498bd2 (patch) | |
tree | bd942c09d769c2de495f0830f8a0dbf78a9bc528 /crypto | |
parent | c2c40803f5b5333def98dcb031cf16d26bbf4ae3 (diff) | |
download | chromium_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.cc | 37 |
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) { |