X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=7ea3e440b0f941d773c06eba53a267b0199b7508;hb=9ba6a16d3c748d026f88b9cd96f908e95ef25521;hp=50a5a483c138b437808818f03a63f23239dd8867;hpb=ae011af4d6186f2ff5582e2a6c48406be89da164;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index 50a5a483..7ea3e440 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -715,6 +715,7 @@ static bool meshlink_setup(meshlink_handle_t *mesh) { meshlink_handle_t *meshlink_open(const char *confbase, const char *name) { // Validate arguments provided by the application + bool usingname = false; if(!confbase || !*confbase) { fprintf(stderr, "No confbase given!\n"); @@ -723,17 +724,19 @@ meshlink_handle_t *meshlink_open(const char *confbase, const char *name) { if(!name || !*name) { fprintf(stderr, "No name given!\n"); - return NULL; + //return NULL; } + else { //check name only if there is a name != NULL - if(!check_id(name)) { - fprintf(stderr, "Invalid name given!\n"); - return NULL; + if(!check_id(name)) { + fprintf(stderr, "Invalid name given!\n"); + return NULL; + } else { usingname = true;} } meshlink_handle_t *mesh = xzalloc(sizeof *mesh); mesh->confbase = xstrdup(confbase); - mesh->name = xstrdup(name); + if (usingname) mesh->name = xstrdup(name); pthread_mutex_init ( &(mesh->outpacketqueue_mutex), NULL); pthread_mutex_init ( &(mesh->nodes_mutex), NULL); mesh->threadstarted = false; @@ -792,6 +795,12 @@ void *meshlink_main_loop(void *arg) { bool meshlink_start(meshlink_handle_t *mesh) { // TODO: open listening sockets first + //Check that a valid name is set + if(!mesh->name ) { + fprintf(stderr, "No name given!\n"); + return false; + } + // Start the main thread if(pthread_create(&mesh->thread, NULL, meshlink_main_loop, mesh) != 0) {