1 #include "FileDescriptor.h"
2 #include "SessionListener.h"
3 #include "HostListener.h"
5 #include "Configuration.h"
6 #include "MMSException.h"
11 namespace mms
= remote
;
13 using namespace mms::diku_mcs
;
15 int main(int argc
,char** argv
)
17 Configuration::read(argc
,argv
);
18 if (Configuration::vm
["daemonize"].as
<int>())
20 printf("Daemonizing!\n");
26 if (NULL
== freopen(Configuration::vm
["log-file"].as
<std::string
>().c_str(),"a",stdout
))
28 fprintf(stderr
,"Unable to open file %s for logging! Bailing out!\n",Configuration::vm
["log-file"].as
<std::string
>().c_str());
31 if (NULL
== freopen(Configuration::vm
["errorlog-file"].as
<std::string
>().c_str(),"a",stderr
))
37 log("Starting mote server\n");
43 dbConn
.connect( Configuration::vm
["dbName"].as
<std::string
>(),
44 Configuration::vm
["dbHost"].as
<std::string
>(),
45 Configuration::vm
["dbUser"].as
<std::string
>(),
46 Configuration::vm
["dbPassword"].as
<std::string
>());
47 log("Connected to database\n");
49 log("Deleted old mote data\n");
51 log("Deleted old session data\n");
52 HostListener
hostListener(Configuration::vm
["hostListenerPort"].as
<unsigned int>());
53 SessionListener
sessionListener(Configuration::vm
["sessionListenerPort"].as
<unsigned int>());
54 log("Entering service loop\n");
55 FileDescriptor::serviceLoop();
57 catch (std::exception e)
59 log("Caught exception: %s - restarting listeners in 30 seconds\n",e.what());