Added support for logfiles
This commit is contained in:
parent
e6ecfd87ae
commit
d519a8f6a0
1 changed files with 23 additions and 2 deletions
|
@ -4,6 +4,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
//#include <io.h>
|
//#include <io.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <ctime>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <mist/config.h>
|
#include <mist/config.h>
|
||||||
|
@ -14,6 +15,7 @@
|
||||||
#include <mist/timing.h>
|
#include <mist/timing.h>
|
||||||
#include <mist/converter.h>
|
#include <mist/converter.h>
|
||||||
#include <mist/stream.h>
|
#include <mist/stream.h>
|
||||||
|
#include <mist/defines.h>
|
||||||
#include "controller_storage.h"
|
#include "controller_storage.h"
|
||||||
#include "controller_connectors.h"
|
#include "controller_connectors.h"
|
||||||
#include "controller_streams.h"
|
#include "controller_streams.h"
|
||||||
|
@ -218,6 +220,9 @@ int main(int argc, char ** argv){
|
||||||
conf.addOption("account",
|
conf.addOption("account",
|
||||||
JSON::fromString(
|
JSON::fromString(
|
||||||
"{\"long\":\"account\", \"short\":\"a\", \"arg\":\"string\" \"default\":\"\", \"help\":\"A username:password string to create a new account with.\"}"));
|
"{\"long\":\"account\", \"short\":\"a\", \"arg\":\"string\" \"default\":\"\", \"help\":\"A username:password string to create a new account with.\"}"));
|
||||||
|
conf.addOption("logfile",
|
||||||
|
JSON::fromString(
|
||||||
|
"{\"long\":\"logfile\", \"short\":\"L\", \"arg\":\"string\" \"default\":\"\",\"help\":\"Redirect all standard output to a log file, provided with an argument\"}"));
|
||||||
conf.addOption("configFile",
|
conf.addOption("configFile",
|
||||||
JSON::fromString(
|
JSON::fromString(
|
||||||
"{\"long\":\"config\", \"short\":\"c\", \"arg\":\"string\" \"default\":\"config.json\", \"help\":\"Specify a config file other than default.\"}"));
|
"{\"long\":\"config\", \"short\":\"c\", \"arg\":\"string\" \"default\":\"config.json\", \"help\":\"Specify a config file other than default.\"}"));
|
||||||
|
@ -231,7 +236,24 @@ int main(int argc, char ** argv){
|
||||||
JSON::fromString(
|
JSON::fromString(
|
||||||
"{\"default\":\"" COMPILED_PASSWORD "\", \"arg\":\"string\", \"help\":\"MistSteward uplink password.\", \"short\":\"P\", \"long\":\"uplink-pass\"}"));
|
"{\"default\":\"" COMPILED_PASSWORD "\", \"arg\":\"string\", \"help\":\"MistSteward uplink password.\", \"short\":\"P\", \"long\":\"uplink-pass\"}"));
|
||||||
conf.parseArgs(argc, argv);
|
conf.parseArgs(argc, argv);
|
||||||
|
if(conf.getString("logfile")!= ""){
|
||||||
|
//open logfile, dup stdout to logfile
|
||||||
|
int output = open(conf.getString("logfile").c_str(),O_APPEND|O_CREAT|O_WRONLY,S_IRWXU);
|
||||||
|
if(output < 0){
|
||||||
|
DEBUG_MSG(DLVL_ERROR, "Could not redirect output to %s: %s",conf.getString("logfile").c_str(),strerror(errno));
|
||||||
|
return 7;
|
||||||
|
}else{
|
||||||
|
dup2(output,STDOUT_FILENO);
|
||||||
|
dup2(output,STDERR_FILENO);
|
||||||
|
time_t rawtime;
|
||||||
|
struct tm * timeinfo;
|
||||||
|
char buffer [25];
|
||||||
|
time (&rawtime);
|
||||||
|
timeinfo = localtime (&rawtime);
|
||||||
|
strftime (buffer,25,"%c",timeinfo);
|
||||||
|
std::cerr << std::endl << std::endl <<"!----MistServer Started at " << buffer << " ----!" << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
//Input custom config here
|
//Input custom config here
|
||||||
Controller::Storage = JSON::fromFile(conf.getString("configFile"));
|
Controller::Storage = JSON::fromFile(conf.getString("configFile"));
|
||||||
|
|
||||||
|
@ -339,7 +361,6 @@ int main(int argc, char ** argv){
|
||||||
time_t processchecker = 0;
|
time_t processchecker = 0;
|
||||||
Socket::Server API_Socket = Socket::Server(conf.getInteger("listen_port"), conf.getString("listen_interface"), true);
|
Socket::Server API_Socket = Socket::Server(conf.getInteger("listen_port"), conf.getString("listen_interface"), true);
|
||||||
Socket::Server Stats_Socket = Socket::Server(Util::getTmpFolder() + "statistics", true);
|
Socket::Server Stats_Socket = Socket::Server(Util::getTmpFolder() + "statistics", true);
|
||||||
conf.activate();
|
|
||||||
Socket::Connection Incoming;
|
Socket::Connection Incoming;
|
||||||
std::vector<Controller::ConnectedUser> users;
|
std::vector<Controller::ConnectedUser> users;
|
||||||
std::vector<Socket::Connection> buffers;
|
std::vector<Socket::Connection> buffers;
|
||||||
|
|
Loading…
Add table
Reference in a new issue