summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-02-01 19:23:21 +0000
committerHenri Herscher <henri@oreka.org>2006-02-01 19:23:21 +0000
commitdc58649cf25f75f32fdb3e1cc8e20b33c94280c5 (patch)
tree559cf824fd0a01e0ec42cbdc6f67f950daf374c5
parenta1da167e81f54d1f5a5cb9323df5b8eac912b591 (diff)
Plugin loading now makes sure that file extensions are correct (.dll and .so)
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@153 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/OrkAudio.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/orkaudio/OrkAudio.cpp b/orkaudio/OrkAudio.cpp
index 83bd2ec..5e7cad3 100644
--- a/orkaudio/OrkAudio.cpp
+++ b/orkaudio/OrkAudio.cpp
@@ -58,8 +58,10 @@ void LoadPlugins(std::list<ACE_DLL>& pluginDlls)
{
#ifdef WIN32
CStdString pluginDirectory = "./plugins/";
+ CStdString pluginExtension = ".dll";
#else
CStdString pluginDirectory = "/usr/lib/orkaudio/plugins/";
+ CStdString pluginExtension = ".so";
#endif
CStdString pluginPath;
ACE_DLL dll;
@@ -74,7 +76,10 @@ void LoadPlugins(std::list<ACE_DLL>& pluginDlls)
dirent* dirEntry = NULL;
while(dirEntry = ACE_OS::readdir(dir))
{
- if (ACE_OS::strstr(dirEntry->d_name, ".dll"))
+ CStdString dirEntryFilename = dirEntry->d_name;
+ int extensionPos = dirEntryFilename.Find(pluginExtension);
+
+ if ( extensionPos != -1 && (dirEntryFilename.size() - extensionPos) == pluginExtension.size() )
{
pluginPath = pluginDirectory + dirEntry->d_name;
dll.open((PCSTR)pluginPath);