xref: /freebsd/contrib/ntp/libntp/socktoa.c (revision ea906c4152774dff300bb26fbfc1e4188351c89a)
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