Files
mqttauditing/mqttauditing.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);
}