projects
/
fms.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
version 0.3.20
[fms.git]
/
src
/
fmsapp.cpp
diff --git
a/src/fmsapp.cpp
b/src/fmsapp.cpp
index
94443c4
..
01fcf9a
100644
(file)
--- a/
src/fmsapp.cpp
+++ b/
src/fmsapp.cpp
@@
-17,6
+17,8
@@
#include <Poco/FormattingChannel.h>
\r
#include <Poco/PatternFormatter.h>
\r
#include <iostream>
\r
#include <Poco/FormattingChannel.h>
\r
#include <Poco/PatternFormatter.h>
\r
#include <iostream>
\r
+#include <string>
\r
+#include <cstring>
\r
\r
#ifdef _WIN32
\r
#include <direct.h>
\r
\r
#ifdef _WIN32
\r
#include <direct.h>
\r
@@
-99,7
+101,8
@@
void FMSApp::initialize(Poco::Util::Application &self)
ServerApplication::initialize(self);
\r
\r
// set working directory - fall back on application.dir if working directory isn't set
\r
ServerApplication::initialize(self);
\r
\r
// set working directory - fall back on application.dir if working directory isn't set
\r
- if(m_workingdirectory=="")
\r
+ // if we are runing as a service, then working directory needs to be set to the application directory
\r
+ if(m_workingdirectory=="" || config().getBool("application.runAsService",false)==true)
\r
{
\r
m_workingdirectory=config().getString("application.dir");
\r
}
\r
{
\r
m_workingdirectory=config().getString("application.dir");
\r
}
\r
@@
-159,7
+162,12
@@
int FMSApp::main(const std::vector<std::string> &args)
// so we need to set the working directory again
\r
int rval=chdir(m_workingdirectory.c_str());
\r
\r
// so we need to set the working directory again
\r
int rval=chdir(m_workingdirectory.c_str());
\r
\r
- if(m_displayhelp)
\r
+ if(VerifyDB()==false)
\r
+ {
\r
+ std::cout << "The FMS database failed verification. It is most likely corrupt!" << std::endl;
\r
+ logger().fatal("The FMS database failed verification. It is most likely corrupt!");
\r
+ }
\r
+ else if(m_displayhelp)
\r
{
\r
}
\r
else if(m_showoptions)
\r
{
\r
}
\r
else if(m_showoptions)
\r
@@
-174,6
+182,14
@@
int FMSApp::main(const std::vector<std::string> &args)
{
\r
logger().information("FMS startup v"FMS_VERSION);
\r
\r
{
\r
logger().information("FMS startup v"FMS_VERSION);
\r
\r
+ std::string tempval="";
\r
+ Option::Instance()->Get("VacuumOnStartup",tempval);
\r
+ if(tempval=="true")
\r
+ {
\r
+ logger().information("VACUUMing database");
\r
+ SQLite3DB::DB::Instance()->Execute("VACUUM;");
\r
+ }
\r
+
\r
StartThreads();
\r
\r
if(isInteractive()==true)
\r
StartThreads();
\r
\r
if(isInteractive()==true)
\r