n->ecdsa = ecdsa_set_public_key(data);
n->submesh = c->submesh;
- if(!node_write_config(mesh, n)) {
+ // Remember its current address
+ node_add_recent_address(mesh, n, &c->address);
+
+ if(!node_write_config(mesh, n) || !config_sync(mesh, "current")) {
logger(mesh, MESHLINK_ERROR, "Error writing configuration file for invited node %s!\n", c->name);
free_node(n);
return false;
return false;
}
- node_read_public_key(mesh, n);
-
- if(!ecdsa_active(n->ecdsa)) {
+ if(!node_read_public_key(mesh, n)) {
logger(mesh, MESHLINK_ERROR, "No key known for peer %s", c->name);
if(n->status.reachable && !n->status.waitingforkey) {