netinet/in.h: Add ip_mreqn structure

Message ID 20220813210353.3553836-1-samuel.thibault@ens-lyon.org
State Superseded, archived
Headers
Series netinet/in.h: Add ip_mreqn structure |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit fail Patch series failed to build

Commit Message

Samuel Thibault Aug. 13, 2022, 9:03 p.m. UTC
  This is following the BSD and Linux definition.
---
 inet/netinet/in.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)
  

Comments

Florian Weimer Aug. 15, 2022, 1:13 p.m. UTC | #1
* Samuel Thibault:

> This is following the BSD and Linux definition.
> ---
>  inet/netinet/in.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/inet/netinet/in.h b/inet/netinet/in.h
> index 1633bc64e4..362eb9e9e7 100644
> --- a/inet/netinet/in.h
> +++ b/inet/netinet/in.h
> @@ -278,6 +278,19 @@ struct ip_mreq
>      struct in_addr imr_interface;
>    };
>  
> +/* IPv4 multicast request with interface index.  */
> +struct ip_mreqn
> +  {
> +    /* IP multicast address of group.  */
> +    struct in_addr imr_multiaddr;
> +
> +    /* Local IP address of interface.  */
> +    struct in_addr imr_address;
> +
> +    /* Interface index.  */
> +    int imr_ifindex;
> +  };
> +
>  struct ip_mreq_source
>    {
>      /* IP multicast address of group.  */

I think you'll have to remove the definition from
sysdeps/unix/sysv/linux/bits/in.h.

python3 -B ../scripts/gen-as-const.py --cc="gcc -m32 -std=gnu11 -fgnu89-inline  -g -O2 -Wall -Wwrite-strings -Wundef -Werror -fmerge-all-constants -frounding-math -fno-stack-protector -fno-common -Wstrict-prototypes -Wold-style-definition -fmath-errno      -ftls-model=initial-exec      -I../include -I/build/csu  -I/build  -I../sysdeps/unix/sysv/linux/i386/i686  -I../sysdeps/i386/i686/nptl  -I../sysdeps/unix/sysv/linux/i386  -I../sysdeps/unix/sysv/linux/x86/include -I../sysdeps/unix/sysv/linux/x86  -I../sysdeps/x86/nptl  -I../sysdeps/i386/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/i386  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/i386/i686/fpu/multiarch  -I../sysdeps/i386/i686/fpu  -I../sysdeps/i386/i686/multiarch  -I../sysdeps/i386/i686  -I../sysdeps/i386/fpu  -I../sysdeps/x86/fpu  -I../sysdeps/i386  -I../sysdeps/x86/include -I../sysdeps/x86  -I../sysdeps/wordsize-32  -I../sysdeps/ieee754/float128  -I../sysdeps/ieee754/ldbl-96/include -I../sysdeps/ieee754/ldbl-96  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I.  -D_LIBC_REENTRANT -include /build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h       -DTOP_NAMESPACE=glibc -DGEN_AS_CONST_HEADERS \
		   -MD -MP -MF /build/rtld-sizes.h.dT \
		   -MT '/build/rtld-sizes.h.d /build/rtld-sizes.h'" \
	  rtld-sizes.sym > /build/rtld-sizes.hT
In file included from ../include/netinet/in.h:3,
                 from ../resolv/bits/types/res_state.h:5,
                 from ../include/bits/types/res_state.h:1,
                 from ../nptl/descr.h:34,
                 from ../sysdeps/i386/nptl/tls.h:114,
                 from ../sysdeps/i386/i686/nptl/tls.h:32,
                 from ../include/link.h:51,
                 from <stdin>:1:
../inet/netinet/in.h:282:8: error: redefinition of ‘struct ip_mreqn’
  282 | struct ip_mreqn
      |        ^~~~~~~~
In file included from ../inet/netinet/in.h:37:
../sysdeps/unix/sysv/linux/bits/in.h:150:8: note: originally defined here
  150 | struct ip_mreqn
      |        ^~~~~~~~

<https://www.delorie.com/trybots/32bit/11483/make.tail.txt>

Thanks,
Florian
  
Samuel Thibault Aug. 15, 2022, 5:15 p.m. UTC | #2
Florian Weimer, le lun. 15 août 2022 15:13:53 +0200, a ecrit:
> > This is following the BSD and Linux definition.
> > ---
> >  inet/netinet/in.h | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> >
> > diff --git a/inet/netinet/in.h b/inet/netinet/in.h
> > index 1633bc64e4..362eb9e9e7 100644
> > --- a/inet/netinet/in.h
> > +++ b/inet/netinet/in.h
> > @@ -278,6 +278,19 @@ struct ip_mreq
> >      struct in_addr imr_interface;
> >    };
> >  
> > +/* IPv4 multicast request with interface index.  */
> > +struct ip_mreqn
> > +  {
> > +    /* IP multicast address of group.  */
> > +    struct in_addr imr_multiaddr;
> > +
> > +    /* Local IP address of interface.  */
> > +    struct in_addr imr_address;
> > +
> > +    /* Interface index.  */
> > +    int imr_ifindex;
> > +  };
> > +
> >  struct ip_mreq_source
> >    {
> >      /* IP multicast address of group.  */
> 
> I think you'll have to remove the definition from
> sysdeps/unix/sysv/linux/bits/in.h.

Oh, right, I didn't realize that that ip_mreq was also shared already.

Samuel
  

Patch

diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index 1633bc64e4..362eb9e9e7 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -278,6 +278,19 @@  struct ip_mreq
     struct in_addr imr_interface;
   };
 
+/* IPv4 multicast request with interface index.  */
+struct ip_mreqn
+  {
+    /* IP multicast address of group.  */
+    struct in_addr imr_multiaddr;
+
+    /* Local IP address of interface.  */
+    struct in_addr imr_address;
+
+    /* Interface index.  */
+    int imr_ifindex;
+  };
+
 struct ip_mreq_source
   {
     /* IP multicast address of group.  */