#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 Feb 16, 2009 at 8:18:15 PM.
Fix based on BSD code

Download all attachments as: .zip

Change History (3)

Changed on Feb 16, 2009 at 8:18:15 PM by Gene Smith

Attachment: ip_output.c.diff added

Fix based on BSD code

comment:1 Changed on Jul 14, 2011 at 6:24:14 PM by Joel Sherrill

Cc: Joel Sherrill added

comment:2 Changed on Jul 14, 2011 at 6:27:32 PM by Joel Sherrill

Resolution: fixed
Status: newclosed

PRs noted in release notes. Closing.

Note: See TracTickets for help on using tickets.