| /* |
| * Copyright (c) 2019 Linaro Limited |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <stdio.h> |
| #include <errno.h> |
| #include <zephyr/net/socket.h> |
| |
| int zsock_getnameinfo(const struct sockaddr *addr, socklen_t addrlen, |
| char *host, socklen_t hostlen, |
| char *serv, socklen_t servlen, int flags) |
| { |
| /* Both sockaddr_in & _in6 have same offsets for family and address. */ |
| struct sockaddr_in *a = (struct sockaddr_in *)addr; |
| |
| if (host != NULL) { |
| void *res = zsock_inet_ntop(a->sin_family, &a->sin_addr, |
| host, hostlen); |
| |
| if (res == NULL) { |
| return DNS_EAI_SYSTEM; |
| } |
| } |
| |
| if (serv != NULL) { |
| snprintk(serv, servlen, "%hu", ntohs(a->sin_port)); |
| } |
| |
| return 0; |
| } |