-void broadcast_meta(connection_t *from, const char *buffer, int length) {
- for list_each(connection_t, c, connection_list)
- if(c != from && c->status.active)
- send_meta(c, buffer, length);
+void broadcast_meta(meshlink_handle_t *mesh, connection_t *from, const char *buffer, int length) {
+ for list_each(connection_t, c, mesh->connections)
+ if(c != from && c->status.active) {
+ send_meta(mesh, c, buffer, length);
+ }
+}
+
+void broadcast_submesh_meta(meshlink_handle_t *mesh, connection_t *from, submesh_t *s,
+ const char *buffer, int length) {
+ for list_each(connection_t, c, mesh->connections)
+ if(c != from && c->status.active) {
+ if(c->node && submesh_allows_node(s, c->node)) {
+ send_meta(mesh, c, buffer, length);
+ }
+ }