19c2daa00SOllivier Robert /* 29c2daa00SOllivier Robert * socktoa - return a numeric host name from a sockaddr_storage structure 39c2daa00SOllivier Robert */ 49c2daa00SOllivier Robert 59c2daa00SOllivier Robert #include <config.h> 69c2daa00SOllivier Robert 79c2daa00SOllivier Robert #include <sys/types.h> 89c2daa00SOllivier Robert #include <sys/socket.h> 99c2daa00SOllivier Robert #include <netinet/in.h> 109c2daa00SOllivier Robert 119c2daa00SOllivier Robert #include <arpa/inet.h> 129c2daa00SOllivier Robert 139c2daa00SOllivier Robert #ifdef ISC_PLATFORM_NEEDNTOP 149c2daa00SOllivier Robert #include <isc/net.h> 159c2daa00SOllivier Robert #endif 169c2daa00SOllivier Robert 179c2daa00SOllivier Robert #include <stdio.h> 189c2daa00SOllivier Robert 199c2daa00SOllivier Robert #include "ntp_fp.h" 209c2daa00SOllivier Robert #include "lib_strbuf.h" 219c2daa00SOllivier Robert #include "ntp_stdlib.h" 229c2daa00SOllivier Robert #include "ntp.h" 239c2daa00SOllivier Robert 249c2daa00SOllivier Robert char * 259c2daa00SOllivier Robert socktoa( 269c2daa00SOllivier Robert struct sockaddr_storage* sock 279c2daa00SOllivier Robert ) 289c2daa00SOllivier Robert { 299c2daa00SOllivier Robert register char *buffer; 309c2daa00SOllivier Robert 319c2daa00SOllivier Robert LIB_GETBUF(buffer); 329c2daa00SOllivier Robert 33ea906c41SOllivier Robert if (sock == NULL) 34ea906c41SOllivier Robert strcpy(buffer, "null"); 35ea906c41SOllivier Robert else 36ea906c41SOllivier Robert { 379c2daa00SOllivier Robert 389c2daa00SOllivier Robert switch(sock->ss_family) { 399c2daa00SOllivier Robert 40ea906c41SOllivier Robert default: 419c2daa00SOllivier Robert case AF_INET : 429c2daa00SOllivier Robert inet_ntop(AF_INET, &GET_INADDR(*sock), buffer, 439c2daa00SOllivier Robert LIB_BUFLENGTH); 449c2daa00SOllivier Robert break; 459c2daa00SOllivier Robert 469c2daa00SOllivier Robert case AF_INET6 : 479c2daa00SOllivier Robert inet_ntop(AF_INET6, &GET_INADDR6(*sock), buffer, 489c2daa00SOllivier Robert LIB_BUFLENGTH); 49ea906c41SOllivier Robert #if 0 50ea906c41SOllivier Robert default: 51ea906c41SOllivier Robert strcpy(buffer, "unknown"); 52ea906c41SOllivier Robert #endif 53ea906c41SOllivier Robert } 549c2daa00SOllivier Robert } 559c2daa00SOllivier Robert return buffer; 569c2daa00SOllivier Robert } 57