summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorAndrzej J.R. Hunt <andrzej@ahunt.org>2013-08-29 12:59:50 +0100
committerTor Lillqvist <tml@iki.fi>2013-08-30 08:34:10 +0000
commit295759c05395099e564e263b98e5e4a38a9a9bc4 (patch)
tree3633bab523d9f2524dd80736c2d30427e6c4cf6a /connectivity
parent52d35df0e61019e722675a27fbb01101a96bff75 (diff)
Set FIREBIRD_TMP and FIREBIRD_LOCK with sane values. (firebird-sdbc)
Currently firebird uses /tmp and C://temp/ as default temporary directories, both of which can be incorrect. Instead we now pass the correct temp directories to firebird. Change-Id: I807a47475e76600365e7a2ccfa78d755621dedb7 Reviewed-on: https://gerrit.libreoffice.org/5678 Reviewed-by: Tor Lillqvist <tml@iki.fi> Tested-by: Tor Lillqvist <tml@iki.fi>
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/drivers/firebird/Driver.cxx17
-rw-r--r--connectivity/source/drivers/firebird/Driver.hxx4
2 files changed, 21 insertions, 0 deletions
diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
index 2b9e65677ddb..89c9cfd08125 100644
--- a/connectivity/source/drivers/firebird/Driver.cxx
+++ b/connectivity/source/drivers/firebird/Driver.cxx
@@ -26,6 +26,8 @@
#include "resource/sharedresources.hxx"
#include <comphelper/processfactory.hxx>
+#include <osl/process.h>
+#include <osl/file.hxx>
using namespace com::sun::star;
using namespace com::sun::star::uno;
@@ -52,9 +54,21 @@ namespace connectivity
}
}
+// Static const member variables
+const OUString FirebirdDriver::our_sFirebirdTmpVar("FIREBIRD_TMP");
+const OUString FirebirdDriver::our_sFirebirdLockVar("FIREBIRD_LOCK");
+
FirebirdDriver::FirebirdDriver()
: ODriver_BASE(m_aMutex)
{
+ OUString sTmpDir;
+ ::osl::FileBase::getTempDirURL(sTmpDir);
+
+ // Overrides firebird's default of /tmp or c:\temp
+ osl_setEnvironment(our_sFirebirdTmpVar.pData, sTmpDir.pData);
+ // Overrides firebird's default of /tmp/firebird or c:\temp\firebird
+ sTmpDir += "/firebird";
+ osl_setEnvironment(our_sFirebirdLockVar.pData, sTmpDir.pData);
}
void FirebirdDriver::disposing()
@@ -70,6 +84,9 @@ void FirebirdDriver::disposing()
}
m_xConnections.clear();
+ osl_clearEnvironment(our_sFirebirdTmpVar.pData);
+ osl_clearEnvironment(our_sFirebirdLockVar.pData);
+
ODriver_BASE::disposing();
}
diff --git a/connectivity/source/drivers/firebird/Driver.hxx b/connectivity/source/drivers/firebird/Driver.hxx
index 545d98ac714b..096346817f78 100644
--- a/connectivity/source/drivers/firebird/Driver.hxx
+++ b/connectivity/source/drivers/firebird/Driver.hxx
@@ -44,6 +44,10 @@ namespace connectivity
class FirebirdDriver : public ODriver_BASE
{
+ private:
+ static const ::rtl::OUString our_sFirebirdTmpVar;
+ static const ::rtl::OUString our_sFirebirdLockVar;
+
protected:
::osl::Mutex m_aMutex; // mutex is need to control member access
OWeakRefArray m_xConnections; // vector containing a list