--- domoticz-2021.1/hardware/plugins/DelayedLink.h.orig 2021-04-17 17:50:55.000000000 +0200 +++ domoticz-2021.1/hardware/plugins/DelayedLink.h 2021-04-20 12:36:46.238826640 +0200 @@ -155,20 +155,10 @@ if (!shared_lib_) shared_lib_ = LoadLibrary("python35_d.dll"); if (!shared_lib_) shared_lib_ = LoadLibrary("python34_d.dll"); # else - if (!shared_lib_) shared_lib_ = LoadLibrary("python39.dll"); - if (!shared_lib_) shared_lib_ = LoadLibrary("python38.dll"); - if (!shared_lib_) shared_lib_ = LoadLibrary("python37.dll"); - if (!shared_lib_) shared_lib_ = LoadLibrary("python36.dll"); - if (!shared_lib_) shared_lib_ = LoadLibrary("python35.dll"); - if (!shared_lib_) shared_lib_ = LoadLibrary("python34.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python.dll"); # endif #else - if (!shared_lib_) FindLibrary("python3.9", true); - if (!shared_lib_) FindLibrary("python3.8", true); - if (!shared_lib_) FindLibrary("python3.7", true); - if (!shared_lib_) FindLibrary("python3.6", true); - if (!shared_lib_) FindLibrary("python3.5", true); - if (!shared_lib_) FindLibrary("python3.4", true); + if (!shared_lib_) FindLibrary(PYTHON_LIBDIR, false); #ifdef __FreeBSD__ if (!shared_lib_) FindLibrary("python3.7m", true); if (!shared_lib_) FindLibrary("python3.6m", true); @@ -355,34 +327,20 @@ else { std::vector entries; - DirectoryListing(entries, sLibrary, true, false); - for (const auto &entry : entries) - { - if (shared_lib_) - { - break; - } - - library = sLibrary + entry + "/"; - FindLibrary(library, false); - } - - entries.clear(); DirectoryListing(entries, sLibrary, false, true); for (const auto &filename : entries) { - if (shared_lib_) - { - break; - } if (filename.length() > 12 && filename.compare(0, 11, "libpython3.") == 0 && - filename.compare(filename.length() - 3, 3, ".so") == 0 && - filename.compare(filename.length() - 6, 6, ".dylib") == 0) + filename.find(".so", 10) != std::string::npos) { - library = sLibrary + filename; + library = sLibrary + "/" + filename; shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL); + if (shared_lib_) + { + break; + } } } }