Lines Matching refs:node
71 unsigned int node; member
77 struct node { struct
88 static struct node *node_get(unsigned int node_id) in node_get() argument
91 struct node *node; in node_get() local
96 return container_of(mi, struct node, mi); in node_get()
98 node = calloc(1, sizeof(*node)); in node_get()
99 if (!node) in node_get()
102 node->id = node_id; in node_get()
104 rc = map_create(&node->services); in node_get()
108 rc = map_put(&nodes, hash_u32(node_id), &node->mi); in node_get()
110 map_destroy(&node->services); in node_get()
111 free(node); in node_get()
115 return node; in node_get()
133 struct node *node; in server_query() local
138 node = map_iter_data(node_me, struct node, mi); in server_query()
140 map_for_each(&node->services, me) { in server_query()
163 srv->service, srv->instance, srv->node, srv->port); in service_announce_new()
168 cmsg.server.node = cpu_to_le32(srv->node); in service_announce_new()
187 srv->service, srv->instance, srv->node, srv->port); in service_announce_del()
192 cmsg.server.node = cpu_to_le32(srv->node); in service_announce_del()
213 pkt.server.node = cpu_to_le32(srv->node); in lookup_notify()
228 struct node *node; in annouce_servers() local
231 node = node_get(ctx->local_node); in annouce_servers()
232 if (!node) in annouce_servers()
235 map_for_each(&node->services, me) { in annouce_servers()
251 struct node *node; in server_add() local
263 srv->node = node_id; in server_add()
266 node = node_get(node_id); in server_add()
267 if (!node) in server_add()
270 rc = map_reput(&node->services, hash_u32(port), &srv->mi, &mi); in server_add()
275 srv->node, srv->port); in server_add()
289 static int server_del(struct context *ctx, struct node *node, unsigned int port) in server_del() argument
296 mi = map_get(&node->services, hash_u32(port)); in server_del()
301 map_remove(&node->services, srv->mi.key); in server_del()
304 if (srv->node == ctx->local_node) in server_del()
339 struct node *local_node; in ctrl_cmd_bye()
342 struct node *node; in ctrl_cmd_bye() local
345 node = node_get(from->sq_node); in ctrl_cmd_bye()
346 if (!node) in ctrl_cmd_bye()
349 map_for_each(&node->services, me) { in ctrl_cmd_bye()
352 server_del(ctx, node, srv->port); in ctrl_cmd_bye()
362 pkt.client.node = from->sq_node; in ctrl_cmd_bye()
368 sq.sq_node = srv->node; in ctrl_cmd_bye()
385 struct node *local_node; in ctrl_cmd_del_client()
391 struct node *node; in ctrl_cmd_del_client() local
415 node = node_get(node_id); in ctrl_cmd_del_client()
416 if (node) in ctrl_cmd_del_client()
417 server_del(ctx, node, port); in ctrl_cmd_del_client()
425 pkt.client.node = node_id; in ctrl_cmd_del_client()
432 sq.sq_node = srv->node; in ctrl_cmd_del_client()
467 if (srv->node == ctx->local_node) in ctrl_cmd_new_server()
488 struct node *node; in ctrl_cmd_del_server() local
504 node = node_get(node_id); in ctrl_cmd_del_server()
505 if (!node) in ctrl_cmd_del_server()
508 return server_del(ctx, node, port); in ctrl_cmd_del_server()
617 le32_to_cpu(msg->client.node), in ctrl_port_fn()
624 le32_to_cpu(msg->server.node), in ctrl_port_fn()
631 le32_to_cpu(msg->server.node), in ctrl_port_fn()
680 struct node *node = container_of(mi, struct node, mi); in node_mi_free() local
682 map_clear(&node->services, server_mi_free); in node_mi_free()
683 map_destroy(&node->services); in node_mi_free()
685 free(node); in node_mi_free()