tipc: Fix problem with bundled multicast message
authorAllan Stephens <allan.stephens@windriver.com>
Mon, 18 Apr 2011 14:08:22 +0000 (10:08 -0400)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Tue, 10 May 2011 20:03:51 +0000 (16:03 -0400)
Set the destination node and destination port fields of an outgoing
multicast message header to zero; this is necessary to ensure that
the receiving node can route the message properly if it was packed
into a bundle due to link congestion. (Previously, there was a chance
that the receiving node would send the unbundled message to a random
node & port, rather than processing the message itself.)

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
net/tipc/port.c

index c2229c4b18ef90210b9f8eb5c983fe238b5d383d..ac64037514f3230d3ad04b56a7b90f96ec723121 100644 (file)
@@ -92,6 +92,8 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
        hdr = &oport->phdr;
        msg_set_type(hdr, TIPC_MCAST_MSG);
        msg_set_lookup_scope(hdr, TIPC_CLUSTER_SCOPE);
+       msg_set_destport(hdr, 0);
+       msg_set_destnode(hdr, 0);
        msg_set_nametype(hdr, seq->type);
        msg_set_namelower(hdr, seq->lower);
        msg_set_nameupper(hdr, seq->upper);