From 5b5b18af7b1a88c4089c55b62daac4c784d363d9 Mon Sep 17 00:00:00 2001 From: "mdm@chromium.org" Date: Thu, 22 Sep 2011 20:27:16 +0000 Subject: Linux: try libgio-2.0.so.0 first and then libgio-2.0.so when trying to use gsettings for proxy settings. Some distributions only have libgio-2.0.so.0, unless development packages are installed. BUG=91744 Review URL: http://codereview.chromium.org/7982053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102347 0039d316-1c4b-4281-b951-d872f2087c98 --- net/proxy/proxy_config_service_linux.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'net/proxy/proxy_config_service_linux.cc') diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc index 4a88f96..6c271f7 100644 --- a/net/proxy/proxy_config_service_linux.cc +++ b/net/proxy/proxy_config_service_linux.cc @@ -844,10 +844,14 @@ bool SettingGetterImplGSettings::LoadAndCheckVersion( // binary, so we detect these systems that way. #ifdef DLOPEN_GSETTINGS - gio_handle_ = dlopen("libgio-2.0.so", RTLD_NOW | RTLD_GLOBAL); + gio_handle_ = dlopen("libgio-2.0.so.0", RTLD_NOW | RTLD_GLOBAL); if (!gio_handle_) { - VLOG(1) << "Cannot load gio library. Will fall back to gconf."; - return false; + // Try again without .0 at the end; on some systems this may be required. + gio_handle_ = dlopen("libgio-2.0.so", RTLD_NOW | RTLD_GLOBAL); + if (!gio_handle_) { + VLOG(1) << "Cannot load gio library. Will fall back to gconf."; + return false; + } } if (!LoadSymbol("g_settings_new", reinterpret_cast(&g_settings_new)) || -- cgit v1.1