This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
lynxis lazus gerrit-no-reply at lists.osmocom.orglynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/19144 ) Change subject: socket.c add osmo_sockaddr_valid() ...................................................................... socket.c add osmo_sockaddr_valid() osmo_sockaddr_valid() is a validator of osmo_sockaddr. It ensure the sock_addr has address and port set. Change-Id: Ib6fb050e1bfe3f3a8d8bbe5e762351ce6b7cc48c --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/19144/1 diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 6bfcc4c..161691c 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -110,4 +110,6 @@ int osmo_sock_local_ip(char *local_ip, const char *remote_ip); +int osmo_sockaddr_valid(struct osmo_sockaddr *addr); + /*! @} */ diff --git a/src/socket.c b/src/socket.c index c7fd28b..1d5d1a5 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1512,6 +1512,30 @@ return 0; } +/*! Determine the if address is valid to start a bind or connect. + * \param[in] addr the address to be tested + * \returns 0 if osmo_sockaddr is valid + */ +int osmo_sockaddr_valid(struct osmo_sockaddr *addr) +{ + struct in6_addr zero = { 0 }; + if (addr == NULL) + return -EINVAL; + + if (addr->u.sas.ss_family == AF_INET) { + struct sockaddr_in *sin = &addr->u.sin; + return !(sin->sin_addr.s_addr > 0 && sin->sin_port > 0); + } else if (addr->u.sas.ss_family == AF_INET6) { + struct sockaddr_in6 *sin6 = &addr->u.sin6; + if (sin6->sin6_port == 0) + return 1; + if (memcmp(&sin6->sin6_addr, &zero, sizeof(struct in6_addr)) == 0) + return 1; + } + + return -ENOTSUP; +} + #endif /* HAVE_SYS_SOCKET_H */ /*! @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6fb050e1bfe3f3a8d8bbe5e762351ce6b7cc48c Gerrit-Change-Number: 19144 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus <lynxis at fe80.eu> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200705/72b6020c/attachment.htm>