diff --git a/shadowsocks/crypto/util.py b/shadowsocks/crypto/util.py index 5425908..6d7d222 100644 --- a/shadowsocks/crypto/util.py +++ b/shadowsocks/crypto/util.py @@ -35,7 +35,12 @@ def find_library(possible_lib_names, search_symbol, library_name): if type(possible_lib_names) not in (list, tuple): possible_lib_names = [possible_lib_names] - for name in possible_lib_names: + lib_names = [] + for lib_name in possible_lib_names: + lib_names.append(lib_name) + lib_names.append('lib' + lib_name) + + for name in lib_names: path = ctypes.util.find_library(name) if path: paths.append(path) @@ -46,7 +51,7 @@ def find_library(possible_lib_names, search_symbol, library_name): # tools underlying find_library on linux. import glob - for name in possible_lib_names: + for name in lib_names: patterns = [ '/usr/local/lib*/lib%s.*' % name, '/usr/lib*/lib%s.*' % name, @@ -106,10 +111,11 @@ def test_find_library(): assert find_library('c', 'strcpy', 'libc') is not None assert find_library(['c'], 'strcpy', 'libc') is not None assert find_library(('c',), 'strcpy', 'libc') is not None - assert find_library('crypto', 'EVP_CipherUpdate', 'libcrypto') is not None + assert find_library(('crypto', 'eay32'), 'EVP_CipherUpdate', + 'libcrypto') is not None assert find_library('notexist', 'strcpy', 'libnotexist') is None assert find_library('c', 'symbol_not_exist', 'c') is None - assert find_library(('notexist', 'c', 'crypto'), + assert find_library(('notexist', 'c', 'crypto', 'eay32'), 'EVP_CipherUpdate', 'libc') is not None