X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fblacklist.c;h=4be4cbd0d45f1fad9c283d9f5d4290f2f8f78493;hb=HEAD;hp=585c1526cc123c5c23b067ca4d8b3b733e61c429;hpb=001cbb9549f17153536ee6a01a783eb85bf54962;p=meshlink diff --git a/test/blacklist.c b/test/blacklist.c index 585c1526..cd545853 100644 --- a/test/blacklist.c +++ b/test/blacklist.c @@ -19,6 +19,7 @@ static struct sync_flag bar_connected; static struct sync_flag bar_disconnected; +static struct sync_flag bar_blacklisted; static struct sync_flag baz_connected; static void foo_status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool reachable) { @@ -45,9 +46,18 @@ static void baz_status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool r } } +static void bar_blacklisted_cb(meshlink_handle_t *mesh, meshlink_node_t *node) { + (void)mesh; + + if(!strcmp(node->name, "foo")) { + set_sync_flag(&bar_blacklisted, true); + } +} + int main(void) { init_sync_flag(&bar_connected); init_sync_flag(&bar_disconnected); + init_sync_flag(&bar_blacklisted); init_sync_flag(&baz_connected); meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_cb); @@ -166,11 +176,15 @@ int main(void) { // Blacklist bar + meshlink_set_blacklisted_cb(mesh[1], bar_blacklisted_cb); + set_sync_flag(&bar_disconnected, false); assert(meshlink_blacklist(mesh[0], meshlink_get_node(mesh[0], name[1]))); assert(wait_sync_flag(&bar_disconnected, 5)); assert(meshlink_get_node_blacklisted(mesh[0], meshlink_get_node(mesh[0], name[1]))); + assert(wait_sync_flag(&bar_blacklisted, 10)); + // Whitelist bar set_sync_flag(&bar_connected, false);