]> git.meshlink.io Git - meshlink/commitdiff
Immediately try connecting to the mesh after a succesful join. invite-protocol
authorGuus Sliepen <guus@meshlink.io>
Sun, 11 May 2014 22:24:15 +0000 (00:24 +0200)
committerGuus Sliepen <guus@meshlink.io>
Sun, 11 May 2014 22:24:15 +0000 (00:24 +0200)
src/meshlink.c
src/net.h
src/net_setup.c
src/protocol_auth.c

index 8b731900a36f7bbab7e5e49393c99409a2d86589..4aadaaa9b0ef9c557ab4cb17a3bce030be82fdce 100644 (file)
@@ -536,8 +536,15 @@ static bool finalize_join(meshlink_handle_t *mesh) {
        sptps_send_record(&(mesh->sptps), 1, b64key, strlen(b64key));
        free(b64key);
 
+       free(mesh->self->name);
+       free(mesh->self->connection->name);
+       mesh->self->name = xstrdup(name);
+       mesh->self->connection->name = xstrdup(name);
+
        fprintf(stderr, "Configuration stored in: %s\n", mesh->confbase);
 
+       load_all_nodes(mesh);
+
        return true;
 }
 
index 3fed3d0fbee39db61eaa27ed63c6afdfafc5cd82..1c590b727d4230e48fad4b49a101d6e408307cdd 100644 (file)
--- a/src/net.h
+++ b/src/net.h
@@ -94,6 +94,7 @@ extern void send_packet(struct meshlink_handle *mesh, struct node_t *, struct vp
 extern void receive_tcppacket(struct meshlink_handle *mesh, struct connection_t *, const char *, int);
 extern void broadcast_packet(struct meshlink_handle *mesh, const struct node_t *, struct vpn_packet_t *);
 extern char *get_name(struct meshlink_handle *mesh);
+extern void load_all_nodes(struct meshlink_handle *mesh);
 extern bool setup_myself_reloadable(struct meshlink_handle *mesh);
 extern bool setup_network(struct meshlink_handle *mesh);
 extern void setup_outgoing_connection(struct meshlink_handle *mesh, struct outgoing_t *);
index 298a1819f9400759f4dd8849e9374c9e7149ffc2..69b6e86a10460492e62d4b49e56c0cdfa0cee66f 100644 (file)
@@ -124,7 +124,7 @@ static bool read_invitation_key(meshlink_handle_t *mesh) {
        return mesh->invitation_key;
 }
 
-static void load_all_nodes(meshlink_handle_t *mesh) {
+void load_all_nodes(meshlink_handle_t *mesh) {
        DIR *dir;
        struct dirent *ent;
        char dname[PATH_MAX];
index 4910a930184e60cb4ced3b24cf905093724a2589..908f565650a995a3aeed0ea2b94740c79d29a24f 100644 (file)
@@ -163,6 +163,9 @@ static bool finalize_invitation(meshlink_handle_t *mesh, connection_t *c, const
        //TODO: callback to application to inform of an accepted invitation
 
        sptps_send_record(&c->sptps, 2, data, 0);
+
+       load_all_nodes(mesh);
+
        return true;
 }