[lkml]   [2007]   [Oct]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Fallback to ipv4 if we try to add join IPv4 multicast group via ipv4-mapped address.
    Good catch; a couple comments:

    > struct ipv6_pinfo *np = inet6_sk(sk);
    > int err;
    > + int addr_type = ipv6_addr_type(addr);
    > +
    > + if (addr_type == IPV6_ADDR_MAPPED) {
    > + __be32 v4addr = addr->s6_addr32[3];
    > + struct ip_mreqn mreq;
    > + mreq.imr_multiaddr.s_addr = v4addr;
    > + mreq.imr_address.s_addr = INADDR_ANY;
    > + mreq.imr_ifindex = ifindex;
    > +
    > + return ip_mc_join_group(sk, &mreq);
    > + }

    ipv6_addr_type() returns a bitmask, so you should use:

    if (addr_type & IPV6_ADDR_MAPPED) {

    Also, you should have a blank line after the "mreq" declaration.

    Ditto for both in ipv6_mc_sock_drop().

    I don't expect the multicast source filtering interface will
    behave well for mapped addresses, either. The mapped multicast
    address won't appear to be a multicast address (and return
    error there), and all the source filters would have to be
    v4mapped addresses and modify the v4 source filters for this
    to do as you expect. So, there's more to it (and it may be a
    bit messy) to support mapped multicast addresses fully. I'll
    think about that part some more.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-10-02 17:37    [W:0.021 / U:29.312 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site