X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet_setup.c;h=37644c44ab6226237d9ce944f447cc57426bd884;hb=f79cc0e0bba16a3aa42a5fa13098cda714623205;hp=acdea368b7e67a9ea743b7d5daa531add38199e9;hpb=0bdce44687a22c8825695cba185b845f5ea5e060;p=meshlink diff --git a/src/net_setup.c b/src/net_setup.c index acdea368..37644c44 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -1,6 +1,6 @@ /* net_setup.c -- Setup. - Copyright (C) 2014 Guus Sliepen + Copyright (C) 2014-2017 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -136,7 +136,7 @@ bool node_read_devclass(meshlink_handle_t *mesh, node_t *n) { free(p); } - if(n->devclass < 0 || n->devclass > _DEV_CLASS_MAX) + if((int)n->devclass < 0 || n->devclass > _DEV_CLASS_MAX) n->devclass = _DEV_CLASS_MAX; exit: @@ -146,7 +146,7 @@ exit: bool node_write_devclass(meshlink_handle_t *mesh, node_t *n) { - if(n->devclass < 0 || n->devclass > _DEV_CLASS_MAX) + if((int)n->devclass < 0 || n->devclass > _DEV_CLASS_MAX) return false; bool result = false; @@ -252,7 +252,7 @@ static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bind *address = 0; } - struct addrinfo *ai, hint = {0}; + struct addrinfo *ai, hint = {}; hint.ai_family = addressfamily; hint.ai_socktype = SOCK_STREAM; hint.ai_protocol = IPPROTO_TCP; @@ -266,6 +266,8 @@ static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bind return false; } + bool success = false; + for(struct addrinfo *aip = ai; aip; aip = aip->ai_next) { // Ignore duplicate addresses bool found = false; @@ -308,10 +310,11 @@ static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bind mesh->listen_socket[mesh->listen_sockets].bindto = bindto; memcpy(&mesh->listen_socket[mesh->listen_sockets].sa, aip->ai_addr, aip->ai_addrlen); mesh->listen_sockets++; + success = true; } freeaddrinfo(ai); - return true; + return success; } /* @@ -389,8 +392,8 @@ bool setup_myself(meshlink_handle_t *mesh) { mesh->listen_sockets = 0; if(!add_listen_address(mesh, address, NULL)) { - if(!strcmp(mesh->myport, "0")) { - logger(mesh, MESHLINK_WARNING, "Could not bind to port %s, asking OS to choose one for us", mesh->myport); + if(strcmp(mesh->myport, "0")) { + logger(mesh, MESHLINK_INFO, "Could not bind to port %s, asking OS to choose one for us", mesh->myport); free(mesh->myport); mesh->myport = strdup("0"); if(!mesh->myport) @@ -406,9 +409,6 @@ bool setup_myself(meshlink_handle_t *mesh) { return false; } - xasprintf(&mesh->self->hostname, "MYSELF port %s", mesh->myport); - mesh->self->connection->hostname = xstrdup(mesh->self->hostname); - /* Done. */ mesh->last_config_check = mesh->loop.now.tv_sec;