• Brian Haley's avatar
    [IPV6]: Fix IPV6_UNICAST_HOPS getsockopt(). · befffe90
    Brian Haley authored
    > Relevant standard (RFC 3493) notes:
    >
    >    The IPV6_UNICAST_HOPS option may be used with getsockopt() to
    >    determine the hop limit value that the system will use for subsequent
    >    unicast packets sent via that socket.
    >
    > I don't reckon -1 could be the hop limit value.
    
    -1 means un-initialized.
    
    > IMHO, the value from
    > case 1 (if socket is connected to some destination), otherwise case 2
    > (if bound to a scope interface) or ultimately the default hop limit
    > ought to be returned instead, as it will be most often correct, while
    > the current behavior is always wrong, unless setsockopt() has been used
    > first. I don't if some people may think doing a route lookup in
    > getsockopt might be overly expensive, but at least the two other cases
    > should be ok, particularly the last one.
    
    The following patch seems to work for me, but this code has behaved this
    way for a while, so don't know if it will break any existing apps.
    Signed-off-by: default avatarBrian Haley <brian.haley@hp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    befffe90
ipv6_sockglue.c 23.4 KB