From f94b2c67485009572027c6f37ba4ec09f6729910 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 13 Jun 2014 11:15:57 +0200 Subject: include: cache copy of include/linux/socket.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes compilation in Debian Squeeze: CC attr.lo In file included from ../include/libmnl/libmnl.h:9, from socket.c:10: ../include/linux/netlink.h:35: error: expected specifier-qualifier-list before ‘__kernel_sa_family_t’ In file included from ../include/libmnl/libmnl.h:9, from callback.c:11: ../include/linux/netlink.h:35: error: expected specifier-qualifier-list before ‘__kernel_sa_family_t’ socket.c: In function ‘mnl_socket_get_portid’: socket.c:102: error: ‘const struct sockaddr_nl’ has no member named ‘nl_pid’ socket.c: In function ‘mnl_socket_bind’: socket.c:146: error: ‘struct sockaddr_nl’ has no member named ‘nl_family’ socket.c:147: error: ‘struct sockaddr_nl’ has no member named ‘nl_groups’ socket.c:148: error: ‘struct sockaddr_nl’ has no member named ‘nl_pid’ socket.c:163: error: ‘struct sockaddr_nl’ has no member named ‘nl_family’ socket.c: In function ‘mnl_socket_sendto’: socket.c:184: error: unknown field ‘nl_family’ specified in initializer socket.c:185: warning: excess elements in struct initializer socket.c:185: warning: (near initialization for ‘snl’) Signed-off-by: Pablo Neira Ayuso --- include/linux/Makefile.am | 2 +- include/linux/socket.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 include/linux/socket.h (limited to 'include') diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am index 95f82d2..08c600b 100644 --- a/include/linux/Makefile.am +++ b/include/linux/Makefile.am @@ -1,2 +1,2 @@ SUBDIRS = netfilter -noinst_HEADERS = netlink.h +noinst_HEADERS = netlink.h socket.h diff --git a/include/linux/socket.h b/include/linux/socket.h new file mode 100644 index 0000000..8c1e501 --- /dev/null +++ b/include/linux/socket.h @@ -0,0 +1,21 @@ +#ifndef _LINUX_SOCKET_H +#define _LINUX_SOCKET_H + +/* + * Desired design of maximum size and alignment (see RFC2553) + */ +#define _K_SS_MAXSIZE 128 /* Implementation specific max size */ +#define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *)) + /* Implementation specific desired alignment */ + +typedef unsigned short __kernel_sa_family_t; + +struct __kernel_sockaddr_storage { + __kernel_sa_family_t ss_family; /* address family */ + /* Following field(s) are implementation specific */ + char __data[_K_SS_MAXSIZE - sizeof(unsigned short)]; + /* space to achieve desired size, */ + /* _SS_MAXSIZE value minus size of ss_family */ +} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */ + +#endif /* _LINUX_SOCKET_H */ -- cgit v1.2.1