free(mesh->self->name);
mesh->name = name;
mesh->self->name = xstrdup(name);
- mesh->self->devclass = devclass;
+ mesh->self->devclass = devclass == DEV_CLASS_UNKNOWN ? mesh->devclass : devclass;
// Initialize configuration directory
if(!config_init(mesh, "current")) {
return true;
}
+
static bool sendline(int fd, char *format, ...) {
- static char buffer[4096];
+ char buffer[4096];
char *p = buffer;
int blen = 0;
va_list ap;
pthread_mutex_lock(&(mesh->mesh_mutex));
+#if HAVE_CATTA
+
+ if(mesh->discovery) {
+ discovery_start(mesh);
+ }
+
+#endif
+
logger(mesh, MESHLINK_DEBUG, "Starting main_loop...\n");
main_loop(mesh);
logger(mesh, MESHLINK_DEBUG, "main_loop returned.\n");
+#if HAVE_CATTA
+
+ // Stop discovery
+ if(mesh->discovery) {
+ discovery_stop(mesh);
+ }
+
+#endif
+
pthread_mutex_unlock(&(mesh->mesh_mutex));
return NULL;
}
mesh->threadstarted = true;
-#if HAVE_CATTA
-
- if(mesh->discovery) {
- discovery_start(mesh);
- }
-
-#endif
-
assert(mesh->self->ecdsa);
assert(!memcmp((uint8_t *)mesh->self->ecdsa + 64, (uint8_t *)mesh->private_key + 64, 32));
pthread_mutex_lock(&(mesh->mesh_mutex));
logger(mesh, MESHLINK_DEBUG, "meshlink_stop called\n");
-#if HAVE_CATTA
-
- // Stop discovery
- if(mesh->discovery) {
- discovery_stop(mesh);
- }
-
-#endif
-
// Shut down the main thread
event_loop_stop(&mesh->loop);
}
/// Device class traits
-dev_class_traits_t dev_class_traits[_DEV_CLASS_MAX + 1] = {
+const dev_class_traits_t dev_class_traits[_DEV_CLASS_MAX + 1] = {
{ .min_connects = 3, .max_connects = 10000, .edge_weight = 1 }, // DEV_CLASS_BACKBONE
{ .min_connects = 3, .max_connects = 100, .edge_weight = 3 }, // DEV_CLASS_STATIONARY
{ .min_connects = 3, .max_connects = 3, .edge_weight = 6 }, // DEV_CLASS_PORTABLE