-static struct addrinfo* rtp_resolve_host(const char *hostname, int port,
- int type, int family, int flags)
-{
- struct addrinfo hints = { 0 }, *res = 0;
- int error;
- char service[16];
-
- snprintf(service, sizeof(service), "%d", port);
- hints.ai_socktype = type;
- hints.ai_family = family;
- hints.ai_flags = flags;
- if ((error = getaddrinfo(hostname, service, &hints, &res))) {
- res = NULL;
- av_log(NULL, AV_LOG_ERROR, "rtp_resolve_host: %s\n", gai_strerror(error));
- }
-
- return res;
-}
-
-static int compare_addr(const struct sockaddr_storage *a,
- const struct sockaddr_storage *b)
-{
- if (a->ss_family != b->ss_family)
- return 1;
- if (a->ss_family == AF_INET) {
- return (((const struct sockaddr_in *)a)->sin_addr.s_addr !=
- ((const struct sockaddr_in *)b)->sin_addr.s_addr);
- }
-
-#if HAVE_STRUCT_SOCKADDR_IN6
- if (a->ss_family == AF_INET6) {
- const uint8_t *s6_addr_a = ((const struct sockaddr_in6 *)a)->sin6_addr.s6_addr;
- const uint8_t *s6_addr_b = ((const struct sockaddr_in6 *)b)->sin6_addr.s6_addr;
- return memcmp(s6_addr_a, s6_addr_b, 16);
- }
-#endif
- return 1;
-}
-