From 2197f9c16a23c93cff88ec4394a45b29586b15a0 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Mon, 9 May 2022 23:33:19 +0200 Subject: [PATCH] grnc_sock_ip: implement SOCK_AUX_SET_LOCAL --- sys/net/gnrc/sock/ip/gnrc_sock_ip.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/net/gnrc/sock/ip/gnrc_sock_ip.c b/sys/net/gnrc/sock/ip/gnrc_sock_ip.c index ac649d3c54..448f71a875 100644 --- a/sys/net/gnrc/sock/ip/gnrc_sock_ip.c +++ b/sys/net/gnrc/sock/ip/gnrc_sock_ip.c @@ -223,6 +223,13 @@ ssize_t sock_ip_send_aux(sock_ip_t *sock, const void *data, size_t len, } memcpy(&local, &sock->local, sizeof(local)); } +#if IS_USED(MODULE_SOCK_AUX_LOCAL) + /* user supplied local endpoint takes precedent */ + if ((aux != NULL) && (aux->flags & SOCK_AUX_SET_LOCAL)) { + local = aux->local; + aux->flags &= ~SOCK_AUX_SET_LOCAL; + } +#endif if (remote == NULL) { /* sock can't be NULL at this point */ memcpy(&rem, &sock->remote, sizeof(rem));