mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 23:56:29 +02:00
added uptime/start time to server status page, and disabled noisy debuggin
This commit is contained in:
parent
93ad1c3f99
commit
58b74e1f58
3 changed files with 62 additions and 4 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
#include <QtCore/QString>
|
#include <QtCore/QString>
|
||||||
|
@ -71,7 +72,10 @@ VoxelServer::VoxelServer(const unsigned char* dataBuffer, int numBytes) : Assign
|
||||||
_voxelServerPacketProcessor = NULL;
|
_voxelServerPacketProcessor = NULL;
|
||||||
_voxelPersistThread = NULL;
|
_voxelPersistThread = NULL;
|
||||||
_parsedArgV = NULL;
|
_parsedArgV = NULL;
|
||||||
|
|
||||||
|
_started = time(0);
|
||||||
|
_startedUSecs = usecTimestampNow();
|
||||||
|
|
||||||
_theInstance = this;
|
_theInstance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +118,45 @@ int VoxelServer::civetwebRequestHandler(struct mg_connection* connection) {
|
||||||
mg_printf(connection, "%s", "Your Voxel Server is running.\r\n");
|
mg_printf(connection, "%s", "Your Voxel Server is running.\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
mg_printf(connection, "%s", "\r\n");
|
||||||
|
tm* localtm = localtime(&GetInstance()->_started);
|
||||||
|
const int MAX_TIME_LENGTH = 128;
|
||||||
|
char buffer[MAX_TIME_LENGTH];
|
||||||
|
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", localtm);
|
||||||
|
mg_printf(connection, "Running since: %s", buffer);
|
||||||
|
|
||||||
|
// Convert now to tm struct for UTC
|
||||||
|
tm* gmtm = gmtime(&GetInstance()->_started);
|
||||||
|
if (gmtm != NULL) {
|
||||||
|
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", gmtm);
|
||||||
|
mg_printf(connection, " [%s UTM] ", buffer);
|
||||||
|
}
|
||||||
|
mg_printf(connection, "%s", "\r\n");
|
||||||
|
|
||||||
|
uint64_t now = usecTimestampNow();
|
||||||
|
const int USECS_PER_MSEC = 1000;
|
||||||
|
uint64_t msecsElapsed = (now - GetInstance()->_startedUSecs) / USECS_PER_MSEC;
|
||||||
|
const int MSECS_PER_SEC = 1000;
|
||||||
|
const int SECS_PER_MIN = 60;
|
||||||
|
const int MIN_PER_HOUR = 60;
|
||||||
|
const int MSECS_PER_MIN = MSECS_PER_SEC * SECS_PER_MIN;
|
||||||
|
|
||||||
|
float seconds = (msecsElapsed % MSECS_PER_MIN)/(float)MSECS_PER_SEC;
|
||||||
|
int minutes = (msecsElapsed/(MSECS_PER_MIN)) % MIN_PER_HOUR;
|
||||||
|
int hours = (msecsElapsed/(MSECS_PER_MIN * MIN_PER_HOUR));
|
||||||
|
|
||||||
|
mg_printf(connection, "%s", "Uptime: ");
|
||||||
|
if (hours > 0) {
|
||||||
|
mg_printf(connection, "%d hour%s ", hours, (hours > 1) ? "s" : "" );
|
||||||
|
}
|
||||||
|
if (minutes > 0) {
|
||||||
|
mg_printf(connection, "%d minute%s ", minutes, (minutes > 1) ? "s" : "");
|
||||||
|
}
|
||||||
|
if (seconds > 0) {
|
||||||
|
mg_printf(connection, "%.3f seconds ", seconds);
|
||||||
|
}
|
||||||
|
mg_printf(connection, "%s", "\r\n");
|
||||||
|
mg_printf(connection, "%s", "\r\n");
|
||||||
|
|
||||||
mg_printf(connection, "%s", "\r\n");
|
mg_printf(connection, "%s", "\r\n");
|
||||||
mg_printf(connection, "%s", "Configuration: \r\n ");
|
mg_printf(connection, "%s", "Configuration: \r\n ");
|
||||||
|
@ -438,7 +481,19 @@ void VoxelServer::run() {
|
||||||
_voxelServerPacketProcessor->initialize(true);
|
_voxelServerPacketProcessor->initialize(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("Now running...\n");
|
// Convert now to tm struct for local timezone
|
||||||
|
tm* localtm = localtime(&_started);
|
||||||
|
const int MAX_TIME_LENGTH = 128;
|
||||||
|
char localBuffer[MAX_TIME_LENGTH] = { 0 };
|
||||||
|
char utcBuffer[MAX_TIME_LENGTH] = { 0 };
|
||||||
|
strftime(localBuffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", localtm);
|
||||||
|
// Convert now to tm struct for UTC
|
||||||
|
tm* gmtm = gmtime(&_started);
|
||||||
|
if (gmtm != NULL) {
|
||||||
|
strftime(utcBuffer, MAX_TIME_LENGTH, " [%m/%d/%Y %X UTC]", gmtm);
|
||||||
|
}
|
||||||
|
qDebug() << "Now running... started at: " << localBuffer << utcBuffer << "\n";
|
||||||
|
|
||||||
|
|
||||||
// loop to send to nodes requesting data
|
// loop to send to nodes requesting data
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#define __voxel_server__VoxelServer__
|
#define __voxel_server__VoxelServer__
|
||||||
|
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
#include <QDateTime>
|
||||||
#include <QtCore/QCoreApplication>
|
#include <QtCore/QCoreApplication>
|
||||||
|
|
||||||
#include <Assignment.h>
|
#include <Assignment.h>
|
||||||
|
@ -91,6 +92,8 @@ private:
|
||||||
static int civetwebRequestHandler(struct mg_connection *connection);
|
static int civetwebRequestHandler(struct mg_connection *connection);
|
||||||
static VoxelServer* _theInstance;
|
static VoxelServer* _theInstance;
|
||||||
|
|
||||||
|
time_t _started;
|
||||||
|
uint64_t _startedUSecs;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __voxel_server__VoxelServer__
|
#endif // __voxel_server__VoxelServer__
|
||||||
|
|
|
@ -24,7 +24,7 @@ VoxelServerPacketProcessor::VoxelServerPacketProcessor(VoxelServer* myServer) :
|
||||||
|
|
||||||
void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned char* packetData, ssize_t packetLength) {
|
void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned char* packetData, ssize_t packetLength) {
|
||||||
|
|
||||||
bool debugProcessPacket = true; // temporarily debugging....
|
bool debugProcessPacket = _myServer->wantsDebugVoxelReceiving();
|
||||||
|
|
||||||
if (debugProcessPacket) {
|
if (debugProcessPacket) {
|
||||||
printf("VoxelServerPacketProcessor::processPacket(() packetData=%p packetLength=%ld\n", packetData, packetLength);
|
printf("VoxelServerPacketProcessor::processPacket(() packetData=%p packetLength=%ld\n", packetData, packetLength);
|
||||||
|
@ -47,7 +47,7 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned
|
||||||
packetLength, itemNumber);
|
packetLength, itemNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debugProcessPacket || _myServer->wantsDebugVoxelReceiving()) {
|
if (_myServer->wantsDebugVoxelReceiving()) {
|
||||||
printf("got %s - %d command from client receivedBytes=%ld itemNumber=%d\n",
|
printf("got %s - %d command from client receivedBytes=%ld itemNumber=%d\n",
|
||||||
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
||||||
_receivedPacketCount, packetLength, itemNumber);
|
_receivedPacketCount, packetLength, itemNumber);
|
||||||
|
|
Loading…
Reference in a new issue