From c3e73100af9b685be796bcd3e68786130d45ea24 Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Sun, 14 Oct 2012 20:24:51 +0100 Subject: [PATCH] network: use getservbyport() only if available The absence of this function will only give a less informative string back from our fallback implementation of getnameinfo(). Signed-off-by: Mans Rullgard --- configure | 2 ++ libavformat/os_support.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/configure b/configure index 996c716..e1524fb 100755 --- a/configure +++ b/configure @@ -1190,6 +1190,7 @@ HAVE_LIST=" GetProcessTimes GetSystemTimeAsFileTime getrusage + getservbyport gettimeofday gnu_as ibm_asm @@ -3158,6 +3159,7 @@ if enabled network; then check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len check_type netinet/sctp.h "struct sctp_event_subscribe" check_func getaddrinfo $network_extralibs + check_func getservbyport $network_extralibs # Prefer arpa/inet.h over winsock2 if check_header arpa/inet.h ; then check_func closesocket diff --git a/libavformat/os_support.c b/libavformat/os_support.c index 7618708..451801f 100644 --- a/libavformat/os_support.c +++ b/libavformat/os_support.c @@ -235,8 +235,10 @@ int ff_getnameinfo(const struct sockaddr *sa, int salen, if (serv && servlen > 0) { struct servent *ent = NULL; +#if HAVE_GETSERVBYPORT if (!(flags & NI_NUMERICSERV)) ent = getservbyport(sin->sin_port, flags & NI_DGRAM ? "udp" : "tcp"); +#endif if (ent) snprintf(serv, servlen, "%s", ent->s_name); -- 2.7.4