1. Fixed issue with length field of keep-alive packet
2. Extended amount of elements in RingBuffer, reduced item length 3. Added system information into keep-alive 4. Updated version number
This commit is contained in:
parent
092c1c22d4
commit
8798385d40
4 changed files with 21 additions and 13 deletions
|
@ -17,6 +17,7 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
#ifdef USE_OPENSSL
|
#ifdef USE_OPENSSL
|
||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
|
@ -121,9 +122,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define MODE_CONSOLE (1 << 0)
|
#define MODE_CONSOLE (1 << 0)
|
||||||
#define MODE_SYSLOG (1 << 1)
|
#define MODE_SYSLOG (1 << 1)
|
||||||
#define MODE_DAEMON (1 << 2)
|
#define MODE_DAEMON (1 << 2)
|
||||||
|
|
||||||
#define EVENT_LIST_LENGTH (4 + 2 + 4)
|
#define EVENT_LIST_LENGTH (4 + 2 + 4)
|
||||||
|
|
||||||
|
@ -516,7 +517,7 @@ int main(int argc, const char* argv[])
|
||||||
struct RingBuffer ringBuffers[2];
|
struct RingBuffer ringBuffers[2];
|
||||||
memset(ringBuffers, 0, sizeof(ringBuffers));
|
memset(ringBuffers, 0, sizeof(ringBuffers));
|
||||||
|
|
||||||
uint32_t sequenceNumbers[] =
|
uint32_t sequenceNumbers[] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -524,6 +525,9 @@ int main(int argc, const char* argv[])
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct utsname systemName;
|
||||||
|
uname(&systemName);
|
||||||
|
|
||||||
// Main loop
|
// Main loop
|
||||||
|
|
||||||
bool running = true;
|
bool running = true;
|
||||||
|
@ -801,12 +805,16 @@ int main(int argc, const char* argv[])
|
||||||
|
|
||||||
data->number = htole32(repeaterNumber);
|
data->number = htole32(repeaterNumber);
|
||||||
data->service = REWIND_SERVICE_CRONOS_AGENT;
|
data->service = REWIND_SERVICE_CRONOS_AGENT;
|
||||||
length += sprintf(data->description, "CronosAgent " STRING(VERSION) " " BUILD);
|
|
||||||
|
length += sprintf(data->description,
|
||||||
|
"CronosAgent " STRING(VERSION) " %s %s " BUILD,
|
||||||
|
systemName.sysname,
|
||||||
|
systemName.machine);
|
||||||
|
|
||||||
outgoingBuffer->type = htole16(REWIND_TYPE_KEEP_ALIVE);
|
outgoingBuffer->type = htole16(REWIND_TYPE_KEEP_ALIVE);
|
||||||
outgoingBuffer->flags = htole16(REWIND_FLAG_DEFAULT_SET);
|
outgoingBuffer->flags = htole16(REWIND_FLAG_DEFAULT_SET);
|
||||||
outgoingBuffer->number = htole32(++ sequenceNumbers[0]);
|
outgoingBuffer->number = htole32(++ sequenceNumbers[0]);
|
||||||
outgoingBuffer->length = htobe16(length);
|
outgoingBuffer->length = htole16(length);
|
||||||
length += sizeof(struct RewindData);
|
length += sizeof(struct RewindData);
|
||||||
sendto(uplinkHandle, outgoingBuffer, length, 0, serverAddress->ai_addr, serverAddress->ai_addrlen);
|
sendto(uplinkHandle, outgoingBuffer, length, 0, serverAddress->ai_addr, serverAddress->ai_addrlen);
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,13 @@ void ProcessBuffer(struct RingBuffer* buffer, int handle, struct sockaddr_in* ad
|
||||||
{
|
{
|
||||||
if (buffer->marks == 0)
|
if (buffer->marks == 0)
|
||||||
{
|
{
|
||||||
// Nothing to process
|
// Nothing to process
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buffer->delay > 0)
|
if (buffer->delay > 0)
|
||||||
{
|
{
|
||||||
// Processing was postponed
|
// Processing was postponed
|
||||||
buffer->delay --;
|
buffer->delay --;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ void ProcessBuffer(struct RingBuffer* buffer, int handle, struct sockaddr_in* ad
|
||||||
|
|
||||||
if (buffer->marks & mark)
|
if (buffer->marks & mark)
|
||||||
{
|
{
|
||||||
// Transmit scheduled data
|
// Transmit scheduled data
|
||||||
struct BufferRecord* record = buffer->records + buffer->index;
|
struct BufferRecord* record = buffer->records + buffer->index;
|
||||||
sendto(handle, record->data, record->length, 0, (struct sockaddr*)address, sizeof(struct sockaddr_in));
|
sendto(handle, record->data, record->length, 0, (struct sockaddr*)address, sizeof(struct sockaddr_in));
|
||||||
// Clear processing mark
|
// Clear processing mark
|
||||||
|
|
|
@ -10,8 +10,8 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DATA_LENGTH 256
|
#define DATA_LENGTH 48
|
||||||
#define BUFFER_LENGTH 8
|
#define BUFFER_LENGTH 16
|
||||||
|
|
||||||
struct BufferRecord
|
struct BufferRecord
|
||||||
{
|
{
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define VERSION 20160806
|
#define VERSION 20160811
|
||||||
|
|
Loading…
Add table
Reference in a new issue