+ return NULL;
+}
+
+bool discovery_start(meshlink_handle_t *mesh) {
+ logger(mesh, MESHLINK_DEBUG, "discovery_start called\n");
+
+ // asserts
+ assert(mesh != NULL);
+ assert(mesh->catta_poll == NULL);
+ assert(mesh->catta_server == NULL);
+ assert(mesh->catta_browser == NULL);
+ assert(mesh->discovery_threadstarted == false);
+ assert(mesh->catta_servicetype == NULL);
+
+ // Start the discovery thread
+ if(pthread_create(&mesh->discovery_thread, NULL, discovery_loop, mesh) != 0) {
+ logger(mesh, MESHLINK_ERROR, "Could not start discovery thread: %s\n", strerror(errno));
+ memset(&mesh->discovery_thread, 0, sizeof(mesh)->discovery_thread);
+ return false;
+ }
+
+ mesh->discovery_threadstarted = true;
+
+ return true;