David Stevens wrote: > Yeah, that's what I get for typing in off-the-cuff code. What > I was thinking was the fl.oif assignment instead was: > if (!sk->sk_bound_dev_if && > (addr_type & IPV6_ADDR_MULTICAST)) > sk->sk_bound_dev_if = np->mcast_oif; > > Which it is not, but maybe it could be, since this is a connect(). How about the simple patch below? I just removed the ENINVAL check from my original patch, but it accomplishes the same thing. > That patch looks better, but I'm wondering if we could just remove the > requirement that sin6_scope_id be set here if it's multicast, since it > is doing the following later in the code: > > if (!fl.oif && (addr_type&IPV6_ADDR_MULTICAST)) > fl.oif = np->mcast_oif; > > So, really, all we need to do is get through the LINKLOCAL section > without error in the multicast case and we can remove the redundant > multicast check there. I think that'd be simpler. I don't think we can remove that check since it covers the non-multicast case. -Brian Signed-off-by: Brian Haley ---