65 lines
1.2 KiB
C
65 lines
1.2 KiB
C
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <libconfig.h>
|
|
#include <math.h>
|
|
|
|
#include "ringbuffer.h"
|
|
#include "logging.h"
|
|
#include "mqttreceiver.h"
|
|
#include "handleType.h"
|
|
|
|
|
|
|
|
extern char VERSION[];
|
|
extern uint32_t REFCNT;
|
|
|
|
|
|
config_t cfg;
|
|
ringbuffer_t ringbuffer;
|
|
|
|
commonThreadHandle_t commonThreadHandle;
|
|
|
|
|
|
|
|
void readConfig() {
|
|
config_init(&cfg);
|
|
if (! config_read_file(&cfg, "./mqttauditing.cfg")) {
|
|
logmsg(LOG_ERR, "failed to read config file: %s:%d - %s\n",
|
|
config_error_file(&cfg), config_error_line(&cfg),
|
|
config_error_text(&cfg));
|
|
config_destroy(&cfg);
|
|
exit(-1);
|
|
}
|
|
}
|
|
|
|
int main (void) {
|
|
fprintf(stderr, "VERSION: %s, REFCNT: %u\n", VERSION, REFCNT);
|
|
|
|
readConfig();
|
|
ringbufferInit(&ringbuffer);
|
|
|
|
commonThreadHandle.config = &cfg;
|
|
commonThreadHandle.ringbuffer = &ringbuffer;
|
|
|
|
|
|
pthread_t mqttThread;
|
|
int err = pthread_create(&mqttThread, NULL, mqttreceiver, (void*) &commonThreadHandle);
|
|
if (err != 0) {
|
|
fprintf(stderr, "Unable to create mqtt receiver thread: %d\n", err);
|
|
exit(1);
|
|
}
|
|
|
|
|
|
fprintf(stderr, "started.\n");
|
|
|
|
pthread_join(mqttThread, NULL);
|
|
fprintf(stderr, "mqtt receiver thread joined\n");
|
|
|
|
|
|
|
|
// will never be reached
|
|
config_destroy(&cfg);
|
|
}
|