]> git.meshlink.io Git - meshlink/commitdiff
Trivial test for meshlink_blacklist
authorSaverio Proto <zioproto@gmail.com>
Tue, 20 May 2014 21:15:45 +0000 (23:15 +0200)
committerSaverio Proto <zioproto@gmail.com>
Fri, 23 May 2014 07:13:03 +0000 (09:13 +0200)
src/meshlink.c
src/net_packet.c
src/node.h

index bfadf61b320596304e925ee4e41a7c2d8319332e..0efdb39780c372d3182d7eab89a0c1f1d2128e93 100644 (file)
@@ -1248,6 +1248,11 @@ bool meshlink_import(meshlink_handle_t *mesh, const char *data) {
 }
 
 void meshlink_blacklist(meshlink_handle_t *mesh, meshlink_node_t *node) {
+    node_t *n;
+    n = (node_t*)node;
+    n->status.blacklisted=true;
+    return;
+
 }
 
 static void __attribute__((constructor)) meshlink_init(void) {
index f3809e87f191e0866ec93e6d2b2afb177c9ee0a1..e5dbd964577d7a0df2ef5c40ff6e190f3addae98 100644 (file)
@@ -654,6 +654,9 @@ void handle_incoming_vpn_data(event_loop_t *loop, void *data, int flags) {
                        return;
        }
 
+    if (n->status.blacklisted)
+        return;
+
        n->sock = ls - mesh->listen_socket;
 
        receive_udppacket(mesh, n, &pkt);
index 3a779af97055b163917a0c2aacc2860db8c80c68..f393089527c310303fb491ea463141ad499790ef 100644 (file)
@@ -33,8 +33,9 @@ typedef struct node_status_t {
        unsigned int indirect:1;                /* 1 if this node is not directly reachable by us */
        unsigned int unused_sptps:1;            /* 1 if this node supports SPTPS */
        unsigned int udp_confirmed:1;           /* 1 if the address is one that we received UDP traffic on */
-       unsigned int broadcast:1;               /* 1 if the next UDP packet should be broadcast to the local network */
-       unsigned int unused:23;
+       unsigned int broadcast:1;               /* 1 if the next UDP packet should be broadcast to the local network */
+       unsigned int blacklisted:1;             /* 1 if the node is blacklist so we never want to speak with him anymore*/
+       unsigned int unused:22;
 } node_status_t;
 
 typedef struct node_t {