Hi,

In commit e2dafe87d328774a94fdd77718422b9cbd97ed47 "tipc: RDM/DGRAM transport
uses new fragmenting and sending functions", we have introduced a non backward
change in socket API.

When a rdm sender tries to send a message with addrtype=TIPC_ADDR_NAME to an
unbound receiver, the following happens:

Before this commit, sendmsg returns 0 as seen in strace.

sendto(3, "hellow\n", 7, MSG_DONTWAIT, {sa_family=AF_TIPC,
sa_data="\2\2\350\3\0\0\204\3\0\0\0\0\0\0"}, 16) = 7

After this commit, sendmsg return -EHOSTUNREACH as seen below.

sendto(3, "hellow\n", 7, MSG_DONTWAIT, {sa_family=AF_TIPC,
sa_data="\2\2\350\3\0\0\204\3\0\0\0\0\0\0"}, 16) = -1 EHOSTUNREACH (No route to
host)

This change mandates both the node and port to be known after nametable lookup.

  942                 if (unlikely(!dport && !dnode))
  943                         return -EHOSTUNREACH;

I tested it running the command "echo hellow | strace -ff -o tipc.log tipc-pipe
--rdm 900"

We should return EHOSTUNREACH only if the socket is of type connection oriented
socket. I can fix this in application, but this issue might exist for many 
others.

/Partha


------------------------------------------------------------------------------
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to