]> git.meshlink.io Git - meshlink-tiny/blobdiff - src/protocol_edge.c
Ensure we exchange a session key for application data exchange.
[meshlink-tiny] / src / protocol_edge.c
index aa1a648ec5360ef60d066d3c16d2bfb45a31ec01..18615ce049d67ae7b4d2c95a22e4fbf7a40d1963 100644 (file)
@@ -21,8 +21,6 @@
 
 #include "conf.h"
 #include "connection.h"
-#include "edge.h"
-#include "graph.h"
 #include "logger.h"
 #include "meshlink_internal.h"
 #include "meta.h"
 #include "protocol.h"
 #include "utils.h"
 #include "xalloc.h"
-#include "submesh.h"
 
-bool send_add_edge(meshlink_handle_t *mesh, connection_t *c, const edge_t *e, int contradictions) {
-       bool x;
+bool send_add_edge(meshlink_handle_t *mesh, connection_t *c, int contradictions) {
        char *address, *port;
-       const char *from_submesh, *to_submesh;
-       const submesh_t *s = NULL;
+       sockaddr2str(&c->address, &address, &port);
 
-       if(c->node && c->node->submesh) {
-               if(!submesh_allows_node(e->from->submesh, c->node)) {
-                       return true;
-               }
-
-               if(!submesh_allows_node(e->to->submesh, c->node)) {
-                       return true;
-               }
-       }
-
-       if(e->from->submesh && e->to->submesh && (e->from->submesh != e->to->submesh)) {
-               return true;
-       }
-
-       sockaddr2str(&e->address, &address, &port);
+       bool result = send_request(mesh, c, "%d %x %s %d %s %s %s %s %d %s %x %d %d %x", ADD_EDGE, prng(mesh, UINT_MAX),
+                                  mesh->self->name, mesh->self->devclass, CORE_MESH,
+                                  mesh->peer->name, address, port,
+                                  mesh->peer->devclass, CORE_MESH, 0, 1000, contradictions, mesh->peer->session_id);
 
-       if(e->from->submesh) {
-               from_submesh = e->from->submesh->name;
-       } else {
-               from_submesh = CORE_MESH;
-       }
-
-       if(e->to->submesh) {
-               to_submesh = e->to->submesh->name;
-       } else {
-               to_submesh = CORE_MESH;
-       }
-
-       if(e->from->submesh) {
-               s = e->from->submesh;
-       } else {
-               s = e->to->submesh;
-       }
-
-       x = send_request(mesh, c, s, "%d %x %s %d %s %s %s %s %d %s %x %d %d %x", ADD_EDGE, prng(mesh, UINT_MAX),
-                        e->from->name, e->from->devclass, from_submesh, e->to->name, address, port,
-                        e->to->devclass, to_submesh, OPTION_PMTU_DISCOVERY, e->weight, contradictions, e->from->session_id);
        free(address);
        free(port);
 
-       return x;
+       return result;
 }
 
 bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
        assert(request);
        assert(*request);
 
+       (void)mesh;
+       (void)c;
+#if 0
        edge_t *e;
        node_t *from, *to;
        char from_name[MAX_STRING_SIZE];
@@ -255,10 +221,13 @@ bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
        /* Tell the rest about the new edge */
 
        forward_request(mesh, c, s, request);
+#endif
 
+       /* TODO: Check if this is an edge we would own */
        return true;
 }
 
+#if 0
 bool send_del_edge(meshlink_handle_t *mesh, connection_t *c, const edge_t *e, int contradictions) {
        submesh_t *s = NULL;
 
@@ -286,11 +255,15 @@ bool send_del_edge(meshlink_handle_t *mesh, connection_t *c, const edge_t *e, in
        return send_request(mesh, c, s, "%d %x %s %s %d %x", DEL_EDGE, prng(mesh, UINT_MAX),
                            e->from->name, e->to->name, contradictions, e->session_id);
 }
+#endif
 
 bool del_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
        assert(request);
        assert(*request);
 
+       (void)mesh;
+       (void)c;
+#if 0
        edge_t *e;
        char from_name[MAX_STRING_SIZE];
        char to_name[MAX_STRING_SIZE];
@@ -380,5 +353,8 @@ bool del_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
                }
        }
 
+#endif
+
+       /* TODO: Check if this is an edge we would own. */
        return true;
 }