// =============================== // PC-BSD REST API Server // Available under the 3-clause BSD License // Written by: Ken Moore July 2015 // ================================= #include "globals.h" #include #include #include "WebServer.h" #define DEBUG 1 //Create any global classes QSettings *CONFIG = new QSettings("PCBSD","sysadm"); EventWatcher *EVENTS = new EventWatcher(); //Create the default logfile QFile logfile; void MessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg){ QString txt; switch(type){ case QtDebugMsg: txt = msg; break; case QtWarningMsg: txt = QString("WARNING: %1").arg(msg); txt += "\n Context: "+QString(context.file)+" Line: "+QString(context.line)+" Function: "+QString(context.function); break; case QtCriticalMsg: txt = QString("CRITICAL: %1").arg(msg); txt += "\n Context: "+QString(context.file)+" Line: "+QString(context.line)+" Function: "+QString(context.function); break; case QtFatalMsg: txt = QString("FATAL: %1").arg(msg); txt += "\n Context: "+QString(context.file)+" Line: "+QString(context.line)+" Function: "+QString(context.function); break; } QTextStream out(&logfile); out << txt; if(!txt.endsWith("\n")){ out << "\n"; } } int main( int argc, char ** argv ) { QCoreApplication a(argc, argv); //Check whether running as root if( getuid() != 0){ qDebug() << "sysadm-server must be started as root!"; return 1; } //Evaluate input arguments bool websocket = false; quint16 port = 0; for(int i=1; istartServer(port, websocket) ){ //Now start the event loop ret = a.exec(); qDebug() << "Server Stopped:" << QDateTime::currentDateTime().toString(Qt::ISODate); }else{ qDebug() << "[FATAL] Server could not be started:" << QDateTime::currentDateTime().toString(Qt::ISODate); qDebug() << " - Tried port:" << port; } //Cleanup any globals delete CONFIG; logfile.close(); //Return return ret; }