diff options
author | Nathan Moos <nmoos@cisco.com> | 2021-01-15 16:45:14 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2021-01-21 13:08:57 +0000 |
commit | 323418dd1c7825d38e8b1f83d5a8c23766a26de2 (patch) | |
tree | 8db40b41eccf9e122e3ec25637e4ce94edca6e9d | |
parent | 1523c96deb2bc2f03e7823be4545342309da18fc (diff) |
vppinfra: ensure _GNU_SOURCE is present
Type: fix
When building with musl, _GNU_SOURCE is required to be defined in more
places. This patch defines it in those required places. Additionally,
this patch changes the udphdr field names to the standard names.
Change-Id: I0fec54214ccc8458289176488afb4218761e9d51
Signed-off-by: Nathan Moos <nmoos@cisco.com>
-rw-r--r-- | src/vppinfra/socket.c | 6 | ||||
-rw-r--r-- | src/vppinfra/unix-formats.c | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/vppinfra/socket.c b/src/vppinfra/socket.c index 32260614942..3271393529d 100644 --- a/src/vppinfra/socket.c +++ b/src/vppinfra/socket.c @@ -38,6 +38,7 @@ #include <stdio.h> #include <string.h> /* strchr */ #define __USE_GNU +#define _GNU_SOURCE #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> @@ -54,6 +55,11 @@ #include <vppinfra/format.h> #include <vppinfra/error.h> +#ifndef __GLIBC__ +/* IPPORT_USERRESERVED is not part of musl libc. */ +#define IPPORT_USERRESERVED 5000 +#endif + __clib_export void clib_socket_tx_add_formatted (clib_socket_t * s, char *fmt, ...) { diff --git a/src/vppinfra/unix-formats.c b/src/vppinfra/unix-formats.c index fd0539c7d2b..678700e6129 100644 --- a/src/vppinfra/unix-formats.c +++ b/src/vppinfra/unix-formats.c @@ -50,7 +50,6 @@ #define _GNU_SOURCE /* to get REG_* in ucontext.h */ #include <ucontext.h> -#undef _GNU_SOURCE #undef __USE_GNU #include <unistd.h> @@ -317,11 +316,13 @@ u8 * format_udp4_packet (u8 * s, va_list * args) struct iphdr * ip = (void *) p; struct udphdr * udp = (void *) (ip + 1); - s = format (s, "udp %U:%U -> %U:%U", - format_network_address, AF_INET, &ip->saddr, - format_network_port, IPPROTO_UDP, ntohs (udp->source), - format_network_address, AF_INET, &ip->daddr, - format_network_port, IPPROTO_UDP, ntohs (udp->dest)); + u16 source = udp->uh_sport; + u16 dest = udp->uh_dport; + + s = format (s, "udp %U:%U -> %U:%U", format_network_address, AF_INET, + &ip->saddr, format_network_port, IPPROTO_UDP, ntohs (source), + format_network_address, AF_INET, &ip->daddr, format_network_port, + IPPROTO_UDP, ntohs (dest)); return s; } |