/* $Id: inet_ntop.c,v 1.2 2002/09/05 22:20:32 stefan Exp $ */ #include #include #include #if defined(HAVE_CONFIG_H) #include "config.h" #endif #if !defined(_WIN32) #define _POSIX_C_SOURCE 199506L #define _XOPEN_SOURCE_EXTENDED #if defined(HAVE_SYS_TYPES_H) #include #endif #if defined(HAVE_SYS_SOCKET_H) #include #endif #else #include #endif #include "missing.h" const char * inet_ntop(int af, const void *src, char *dst, socklen_t size) { const unsigned char *p = src; char tmp[sizeof "255.255.255.255"]; if (af != AF_INET) { errno = EAFNOSUPPORT; return NULL; } if (p[0] > 255 || p[1] > 255 || p[2] > 255 || p[3] > 255 || sprintf(tmp, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]) >= size) { errno = ENOSPC; return NULL; } return strcpy(dst, tmp); }