1132451Sroberto/*
2132451Sroberto * socktoa - return a numeric host name from a sockaddr_storage structure
3132451Sroberto */
4132451Sroberto
5132451Sroberto#include <config.h>
6132451Sroberto
7132451Sroberto#include <sys/types.h>
8132451Sroberto#include <sys/socket.h>
9132451Sroberto#include <netinet/in.h>
10132451Sroberto
11132451Sroberto#include <arpa/inet.h>
12132451Sroberto
13132451Sroberto#ifdef ISC_PLATFORM_NEEDNTOP
14132451Sroberto#include <isc/net.h>
15132451Sroberto#endif
16132451Sroberto
17132451Sroberto#include <stdio.h>
18132451Sroberto
19132451Sroberto#include "ntp_fp.h"
20132451Sroberto#include "lib_strbuf.h"
21132451Sroberto#include "ntp_stdlib.h"
22132451Sroberto#include "ntp.h"
23132451Sroberto
24132451Srobertochar *
25132451Srobertosocktoa(
26132451Sroberto	struct sockaddr_storage* sock
27132451Sroberto	)
28132451Sroberto{
29132451Sroberto	register char *buffer;
30132451Sroberto
31132451Sroberto	LIB_GETBUF(buffer);
32132451Sroberto
33182007Sroberto	if (sock == NULL)
34182007Sroberto		strcpy(buffer, "null");
35182007Sroberto	else
36182007Sroberto	{
37132451Sroberto
38182007Sroberto		switch(sock->ss_family) {
39132451Sroberto
40182007Sroberto		default:
41132451Sroberto		case AF_INET :
42132451Sroberto			inet_ntop(AF_INET, &GET_INADDR(*sock), buffer,
43132451Sroberto			    LIB_BUFLENGTH);
44132451Sroberto			break;
45132451Sroberto
46132451Sroberto		case AF_INET6 :
47132451Sroberto			inet_ntop(AF_INET6, &GET_INADDR6(*sock), buffer,
48132451Sroberto			    LIB_BUFLENGTH);
49182007Sroberto#if 0
50182007Sroberto		default:
51182007Sroberto			strcpy(buffer, "unknown");
52182007Sroberto#endif
53182007Sroberto		}
54132451Sroberto	}
55132451Sroberto  	return buffer;
56132451Sroberto}
57