1141cc406Sopenharmony_ci#include "../include/sane/config.h"
2141cc406Sopenharmony_ci
3141cc406Sopenharmony_ci#ifndef HAVE_INET_NTOP
4141cc406Sopenharmony_ci
5141cc406Sopenharmony_ci#include <string.h>
6141cc406Sopenharmony_ci#include <sys/types.h>
7141cc406Sopenharmony_ci#ifdef HAVE_WINSOCK2_H
8141cc406Sopenharmony_ci#include <winsock2.h>
9141cc406Sopenharmony_ci#endif
10141cc406Sopenharmony_ci#ifdef HAVE_SYS_SOCKET_H
11141cc406Sopenharmony_ci#include <sys/socket.h>
12141cc406Sopenharmony_ci#include <netinet/in.h>
13141cc406Sopenharmony_ci#include <arpa/inet.h>
14141cc406Sopenharmony_ci#endif
15141cc406Sopenharmony_ci
16141cc406Sopenharmony_ci
17141cc406Sopenharmony_ciconst char *
18141cc406Sopenharmony_ciinet_ntop (int af, const void *src, char *dst, size_t cnt)
19141cc406Sopenharmony_ci{
20141cc406Sopenharmony_ci  struct in_addr in;
21141cc406Sopenharmony_ci  char *text_addr;
22141cc406Sopenharmony_ci
23141cc406Sopenharmony_ci#ifdef HAVE_INET_NTOA
24141cc406Sopenharmony_ci  if (af == AF_INET)
25141cc406Sopenharmony_ci    {
26141cc406Sopenharmony_ci      memcpy (&in.s_addr, src, sizeof (in.s_addr));
27141cc406Sopenharmony_ci      text_addr = inet_ntoa (in);
28141cc406Sopenharmony_ci      if (text_addr && dst)
29141cc406Sopenharmony_ci	{
30141cc406Sopenharmony_ci	  strncpy (dst, text_addr, cnt);
31141cc406Sopenharmony_ci	  return dst;
32141cc406Sopenharmony_ci	}
33141cc406Sopenharmony_ci      else
34141cc406Sopenharmony_ci	return 0;
35141cc406Sopenharmony_ci    }
36141cc406Sopenharmony_ci#endif /* HAVE_INET_NTOA */
37141cc406Sopenharmony_ci  return 0;
38141cc406Sopenharmony_ci}
39141cc406Sopenharmony_ci
40141cc406Sopenharmony_ci#endif /* !HAVE_INET_NTOP */
41