From: <ibr...@us...> - 2012-09-10 21:39:51
|
Revision: 4460 http://tora.svn.sourceforge.net/tora/?rev=4460&view=rev Author: ibre5041 Date: 2012-09-10 21:39:44 +0000 (Mon, 10 Sep 2012) Log Message: ----------- create symlinks in ~/.TOra Modified Paths: -------------- branches/tora3/src/connection/tooraclefind.cpp branches/tora3/src/connection/toteradatafind.cpp Modified: branches/tora3/src/connection/tooraclefind.cpp =================================================================== --- branches/tora3/src/connection/tooraclefind.cpp 2012-09-10 14:08:17 UTC (rev 4459) +++ branches/tora3/src/connection/tooraclefind.cpp 2012-09-10 21:39:44 UTC (rev 4460) @@ -43,6 +43,7 @@ #include "core/utils.h" #include "core/tooracleconst.h" #include "core/toconfiguration.h" +#include "core/toconf.h" #include <QDir> #include <QFile> @@ -349,6 +350,15 @@ - dlopen("libtrotl.so") */ int retval; + QDir toraHome(QDir::homePath() + QDir::separator() + QChar('.') + QString::fromAscii(TOAPPNAME)); + QString providerPath(toraHome.absolutePath() + QDir::separator() + QString::fromAscii("poracle")); + TLOG(5, toNoDecorator, __HERE__) << "Creating plugin path:" << providerPath << std::endl; + if( !toraHome.mkpath(providerPath)) + throw QString("Could not create: %1").arg(providerPath); + + if( !QDir::setCurrent(providerPath)) + throw QString("Could change cwd: %1").arg(toraHome.absolutePath()); + TLOG(5, toNoDecorator, __HERE__) << "Re-creating symlink:" << libPath.absolutePath() << std::endl; retval = unlink("instantclient"); if(retval) @@ -357,6 +367,11 @@ retval = symlink(libPath.absolutePath().toStdString().c_str(), "instantclient"); if(retval) TLOG(5, toNoDecorator, __HERE__) << strerror(retval) << std::endl; + + retval = unlink(TROTL_LIB); + retval = symlink(PROVIDERS_PATH "/../" TROTL_LIB, TROTL_LIB); + if(retval) + TLOG(5, toNoDecorator, __HERE__) << strerror(retval) << std::endl; #endif TLOG(5, toNoDecorator, __HERE__) << "Loading: " TROTL_LIB << std::endl; @@ -365,9 +380,12 @@ TLOG(5, toNoDecorator, __HERE__) << "OK" << std::endl; TLOG(5, toNoDecorator, __HERE__) << "Loading: " PROVIDER_LIB << std::endl; - Utils::toLibrary::LHandle hmodulePOracle = Utils::toLibrary::loadLibrary(QFileInfo(PROVIDER_LIB)); + Utils::toLibrary::LHandle hmodulePOracle = Utils::toLibrary::loadLibrary(QFileInfo(QDir(PROVIDERS_PATH), PROVIDER_LIB)); if ( hmodulePOracle) - TLOG(5, toNoDecorator, __HERE__) << "OK" << std::endl; + TLOG(5, toNoDecorator, __HERE__) << "OK" << std::endl; + + if( !QDir::setCurrent(toraHome.absolutePath())) + throw QString("Could change cwd: %1").arg(toraHome.absolutePath()); } void toOracleInstantFinder::load(ConnectionProvirerParams const ¶ms) Modified: branches/tora3/src/connection/toteradatafind.cpp =================================================================== --- branches/tora3/src/connection/toteradatafind.cpp 2012-09-10 14:08:17 UTC (rev 4459) +++ branches/tora3/src/connection/toteradatafind.cpp 2012-09-10 21:39:44 UTC (rev 4460) @@ -212,7 +212,7 @@ TLOG(5, toNoDecorator, __HERE__) << "OK" << std::endl; TLOG(5, toNoDecorator, __HERE__) << "Loading: " PROVIDER_LIB << std::endl; - Utils::toLibrary::LHandle hmodulePTeradata = Utils::toLibrary::loadLibrary(QFileInfo(PROVIDER_LIB)); + Utils::toLibrary::LHandle hmodulePTeradata = Utils::toLibrary::loadLibrary(QFileInfo(QDir(PROVIDERS_PATH), PROVIDER_LIB)); if ( hmodulePTeradata) TLOG(5, toNoDecorator, __HERE__) << "OK" << std::endl; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |