#1381 closed defect (fixed)

Multicast sendto() fails unless a reachable gateway is specified

Reported by: Gene Smith Owned by: Eric Norum
Priority: normal Milestone: 4.10
Component: network/legacy Version: 4.9
Severity: normal Keywords:
Cc: joel.sherrill@… Blocked By:
Blocking:

Description

If a null or unreachable gateway is specified either statically in networkconfig.h or from dhcp/bootp, sendto() fails on multicast send with errno 118 "Host is unreachable". The failure occurs in networking file ip_output.c since it currently requires all multicasts to have a valid route to the outside world.

This is fixed in BSD ip_output.c at version 1.128 and 1.99.2.17 as found on this page:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/ip_output.c?r1=1.128#rev1.128

Note: Even with this fix, it is necessary to set the socket option IP_MULTICAST_IF for the sending socket. Also, the inferace must have the flag IFF_MULTICAST set in the driver to permit m/c sends. However, these are not sufficient in themselves and the attached patch is still needed.

Attachments (1)

ip_output.c.diff (783 bytes) - added by Gene Smith on 02/16/09 at 20:18:15.
Fix based on BSD code

Download all attachments as: .zip

Change History (3)

Changed on 02/16/09 at 20:18:15 by Gene Smith

Attachment: ip_output.c.diff added

Fix based on BSD code

comment:1 Changed on 07/14/11 at 18:24:14 by Joel Sherrill

Cc: Joel Sherrill added

comment:2 Changed on 07/14/11 at 18:27:32 by Joel Sherrill

Resolution: fixed
Status: newclosed

PRs noted in release notes. Closing.

Note: See TracTickets for help on using tickets.