#include "embeddedhttp.h" #include #include "mongoose.h" #include "Logger.h" #include "version.h" #include "Common.h" #include void show_secret(struct mg_connection *conn, const struct mg_request_info *request_info, void *user_data) { Common* cmn = Common::instance(); int tot_sec = time(0) - cmn->daemonStart; int sec = tot_sec % 60; int min = (tot_sec / 60) % 60; int hour = (tot_sec / 3600) %24; int days = tot_sec / (3600*24); std::ostringstream os; os << VERSION << std::endl; os << SVNVERSION << std::endl; os << "Status:" << std::endl; os << "Recv: " << cmn->smsCounter.incomming << std::endl; os << "Send: " << cmn->smsCounter.outgoing << std::endl; os << "Uptime: " << days << "d, " << hour << ":" << min << ":" << sec; mg_printf(conn, "%s", "HTTP/1.1 200 OK\r\n"); mg_printf(conn, "%s", "Content-Type: text/plain\r\n\r\n"); mg_printf(conn, "%s", os.str().c_str() ); } void show_index(struct mg_connection *conn, const struct mg_request_info *request_info, void *user_data) { mg_printf(conn, "%s", "HTTP/1.1 200 OK\r\n"); mg_printf(conn, "%s", "Content-Type: text/plain\r\n\r\n"); mg_printf(conn, "%s", "

smsdaemon

\n"); mg_printf(conn, "%s", "smsdaemon status\n"); mg_printf(conn, "%s", ""); } void EmbeddedHttp::startServer() { Logger::logMessage("Starting mongoose embedded http engine"); m_context = mg_start(); mg_set_option(m_context, "ports", "8080"); mg_set_uri_callback(m_context, "/", &show_index, 0); mg_set_uri_callback(m_context, "/status", &show_secret, 0); } void EmbeddedHttp::stopServer() { mg_stop(m_context); }