broaden inet_ntop support
This commit is contained in:
		
							parent
							
								
									8f393ee9cc
								
							
						
					
					
						commit
						4e9ee330df
					
				
							
								
								
									
										17
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/sigar.c
									
									
									
									
									
								
							@ -1864,22 +1864,29 @@ SIGAR_DECLARE(int) sigar_net_address_equals(sigar_net_address_t *addr1,
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if !defined(WIN32) && !defined(NETWARE) && !defined(__hpux)
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
#define sigar_inet_ntop inet_ntop
 | 
			
		||||
#define sigar_inet_ntop_errno errno
 | 
			
		||||
#else
 | 
			
		||||
#define sigar_inet_ntop(af, src, dst, size) NULL
 | 
			
		||||
#define sigar_inet_ntop_errno EINVAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
SIGAR_DECLARE(int) sigar_net_address_to_string(sigar_t *sigar,
 | 
			
		||||
                                               sigar_net_address_t *address,
 | 
			
		||||
                                               char *addr_str)
 | 
			
		||||
{
 | 
			
		||||
    switch (address->family) {
 | 
			
		||||
      case SIGAR_AF_INET6:
 | 
			
		||||
#if defined(__linux__) /*XXX*/
 | 
			
		||||
        if (inet_ntop(AF_INET6, (const void *)&address->addr.in6,
 | 
			
		||||
                      addr_str, SIGAR_INET6_ADDRSTRLEN))
 | 
			
		||||
        if (sigar_inet_ntop(AF_INET6, (const void *)&address->addr.in6,
 | 
			
		||||
                            addr_str, SIGAR_INET6_ADDRSTRLEN))
 | 
			
		||||
        {
 | 
			
		||||
            return SIGAR_OK;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            return errno;
 | 
			
		||||
            return sigar_inet_ntop_errno;
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
      case SIGAR_AF_INET:
 | 
			
		||||
        return sigar_inet_ntoa(sigar, address->addr.in, addr_str);
 | 
			
		||||
      case SIGAR_AF_UNSPEC:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user