X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=a9e1b551df18362848fc68a7b5e1f7a0f1192850;hb=46079ef8d3adcb693d593cfd362879eb8e4709df;hp=164c993784b54e5401f19ba364732d304297c002;hpb=f73f697142bd5ce32d9b7273ed73ea798594854d;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index 164c9937..a9e1b551 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -2159,9 +2159,6 @@ bool meshlink_set_port(meshlink_handle_t *mesh, int port) { free(mesh->myport); xasprintf(&mesh->myport, "%d", port); - /* Write meshlink.conf with the updated port number */ - write_main_config_files(mesh); - /* Close down the network. This also deletes mesh->self. */ close_network_connections(mesh); @@ -2182,6 +2179,17 @@ bool meshlink_set_port(meshlink_handle_t *mesh, int port) { rval = true; } + /* Rebuild our own list of recent addresses */ + memset(mesh->self->recent, 0, sizeof(mesh->self->recent)); + add_local_addresses(mesh); + + /* Write meshlink.conf with the updated port number */ + write_main_config_files(mesh); + + if(!config_sync(mesh, "current")) { + return false; + } + done: pthread_mutex_unlock(&(mesh->mesh_mutex));