-static void receive(meshlink_handle_t *mesh, meshlink_node_t *source, const char *data, size_t len) {
- if(!len || data[len - 1]) {
+static void log_message(meshlink_handle_t *mesh, meshlink_log_level_t level, const char *text) {
+ (void)mesh;
+
+ static const char *levelstr[] = {
+ [MESHLINK_DEBUG] = "\x1b[34mDEBUG",
+ [MESHLINK_INFO] = "\x1b[32mINFO",
+ [MESHLINK_WARNING] = "\x1b[33mWARNING",
+ [MESHLINK_ERROR] = "\x1b[31mERROR",
+ [MESHLINK_CRITICAL] = "\x1b[31mCRITICAL",
+ };
+
+ fprintf(stderr, "%s:\x1b[0m %s\n", levelstr[level], text);
+}
+
+static void receive(meshlink_handle_t *mesh, meshlink_node_t *source, const void *data, size_t len) {
+ (void)mesh;
+
+ const char *msg = data;
+
+ if(!len || msg[len - 1]) {