1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-29 16:31:18 +01:00

gnrc_sock_udp: provide port for #9376 API fix

This commit is contained in:
Martine Lenders 2018-06-20 14:20:00 +02:00
parent a20639074a
commit f8524cb4c0

View File

@ -87,7 +87,6 @@ int sock_udp_create(sock_udp_t *sock, const sock_udp_ep_t *local,
const sock_udp_ep_t *remote, uint16_t flags)
{
assert(sock);
assert(local == NULL || local->port != 0);
assert(remote == NULL || remote->port != 0);
if ((local != NULL) && (remote != NULL) &&
(local->netif != SOCK_ADDR_ANY_NETIF) &&
@ -97,8 +96,19 @@ int sock_udp_create(sock_udp_t *sock, const sock_udp_ep_t *local,
}
memset(&sock->local, 0, sizeof(sock_udp_ep_t));
if (local != NULL) {
uint16_t port = local->port;
if (gnrc_af_not_supported(local->family)) {
return -EAFNOSUPPORT;
}
if (port == 0U) {
port = _get_dyn_port(sock);
if (port == GNRC_SOCK_DYN_PORTRANGE_ERR) {
return -EADDRINUSE;
}
}
#ifdef MODULE_GNRC_SOCK_CHECK_REUSE
if (!(flags & SOCK_FLAGS_REUSE_EP)) {
else if (!(flags & SOCK_FLAGS_REUSE_EP)) {
for (sock_udp_t *ptr = _udp_socks; ptr != NULL;
ptr = (sock_udp_t *)ptr->reg.next) {
if (memcmp(&ptr->local, local, sizeof(sock_udp_ep_t)) == 0) {
@ -110,10 +120,8 @@ int sock_udp_create(sock_udp_t *sock, const sock_udp_ep_t *local,
sock->reg.next = (gnrc_sock_reg_t *)_udp_socks;
_udp_socks = sock;
#endif
if (gnrc_af_not_supported(local->family)) {
return -EAFNOSUPPORT;
}
memcpy(&sock->local, local, sizeof(sock_udp_ep_t));
sock->local.port = port;
}
memset(&sock->remote, 0, sizeof(sock_udp_ep_t));
if (remote != NULL) {