summaryrefslogtreecommitdiff
path: root/server/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/server.cpp')
-rw-r--r--server/server.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/server/server.cpp b/server/server.cpp
index 0f7b323..61e723a 100644
--- a/server/server.cpp
+++ b/server/server.cpp
@@ -64,6 +64,12 @@ cMediaServer::~cMediaServer(){
delete mMediaManager;
mMediaManager = NULL;
}
+
+ try {
+ mConnection.execute("VACUUM");
+ } catch (const std::exception& e) {
+ esyslog("UPnP\tFailed to vacuum database: '%s'", e.what());
+ }
}
bool cMediaServer::Start(){
@@ -210,6 +216,7 @@ bool cMediaServer::Initialize(){
mWebserver = new cWebserver(GetServerIPAddress());
mMediaManager = new cMediaManager();
+ stringstream ss;
if(mCurrentConfiguration.expertSettings){
@@ -226,8 +233,6 @@ bool cMediaServer::Initialize(){
if(!mCurrentConfiguration.presentationURL.empty())
mWebserver->SetPresentationUrl(mCurrentConfiguration.presentationURL);
} else {
- stringstream ss;
-
uint16_t port = mCurrentConfiguration.livePort ? mCurrentConfiguration.livePort : 8008;
ss << "http://" << GetServerIPAddress() << ":" << port << "/";
@@ -241,8 +246,15 @@ bool cMediaServer::Initialize(){
if(mCurrentConfiguration.maxRequestTime)
mWebserver->SetMaxRequestTime(mCurrentConfiguration.maxRequestTime);
- if(!mCurrentConfiguration.databaseDir.empty())
- mMediaManager->SetDatabaseDir(mCurrentConfiguration.databaseDir);
+ }
+
+ ss.str();
+ ss << "sqlite:" << mCurrentConfiguration.databaseDir.empty() << "/metadata.db";
+ try {
+ mConnection = tntdb::connect(ss.str());
+ } catch (const std::exception& e) {
+ esyslog("UPnP\tException occurred while connecting to database '%s': %s", ss.str().c_str(), e.what());
+ return false;
}
ret = UpnpSetMaxContentLength(GetMaxContentLength());