|
@@ -89,6 +89,7 @@ static void tipc_disc_init_msg(struct net *net, struct sk_buff *buf, u32 type,
|
|
MAX_H_SIZE, dest_domain);
|
|
MAX_H_SIZE, dest_domain);
|
|
msg_set_non_seq(msg, 1);
|
|
msg_set_non_seq(msg, 1);
|
|
msg_set_node_sig(msg, tn->random);
|
|
msg_set_node_sig(msg, tn->random);
|
|
|
|
+ msg_set_node_capabilities(msg, 0);
|
|
msg_set_dest_domain(msg, dest_domain);
|
|
msg_set_dest_domain(msg, dest_domain);
|
|
msg_set_bc_netid(msg, tn->net_id);
|
|
msg_set_bc_netid(msg, tn->net_id);
|
|
b_ptr->media->addr2msg(msg_media_addr(msg), &b_ptr->addr);
|
|
b_ptr->media->addr2msg(msg_media_addr(msg), &b_ptr->addr);
|
|
@@ -133,6 +134,7 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *buf,
|
|
u32 net_id = msg_bc_netid(msg);
|
|
u32 net_id = msg_bc_netid(msg);
|
|
u32 mtyp = msg_type(msg);
|
|
u32 mtyp = msg_type(msg);
|
|
u32 signature = msg_node_sig(msg);
|
|
u32 signature = msg_node_sig(msg);
|
|
|
|
+ u16 caps = msg_node_capabilities(msg);
|
|
bool addr_match = false;
|
|
bool addr_match = false;
|
|
bool sign_match = false;
|
|
bool sign_match = false;
|
|
bool link_up = false;
|
|
bool link_up = false;
|
|
@@ -167,6 +169,7 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *buf,
|
|
if (!node)
|
|
if (!node)
|
|
return;
|
|
return;
|
|
tipc_node_lock(node);
|
|
tipc_node_lock(node);
|
|
|
|
+ node->capabilities = caps;
|
|
link = node->links[bearer->identity];
|
|
link = node->links[bearer->identity];
|
|
|
|
|
|
/* Prepare to validate requesting node's signature and media address */
|
|
/* Prepare to validate requesting node's signature and media address */
|