diff options
Diffstat (limited to 'missing/inet_ntop.c')
-rw-r--r-- | missing/inet_ntop.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/missing/inet_ntop.c b/missing/inet_ntop.c deleted file mode 100644 index 77a4455..0000000 --- a/missing/inet_ntop.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 1999 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden). - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the Kungliga Tekniska - * Högskolan and its contributors. - * - * 4. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* $Id: inet_ntop.c,v 1.7 2003/11/16 09:36:50 guy Exp $ */ - -#ifndef lint -static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/missing/inet_ntop.c,v 1.7 2003/11/16 09:36:50 guy Exp $"; -#endif - -/* we aren't tcpdump :) */ -#ifdef notdef -#include <tcpdump-stdinc.h> -#endif - -#include <stdio.h> -#include <sys/types.h> - -#ifndef WIN32 -#include <errno.h> -#include <sys/socket.h> -#include <netinet/in.h> - -#else /* WIN32 */ -#include <time.h> -#include <winsock2.h> -#ifdef DO_IPV6 -#include <ws2tcpip.h> -#endif /* DO_IPV6 */ -#include <windows.h> - -/* The below are copied from netlib.h */ -#ifdef errno -/* delete the one from stdlib.h */ -/*#define errno (*_errno()) */ -#undef errno -#endif -#define errno GetLastError() -#define Set_errno(num) SetLastError((num)) - -/* INVALID_SOCKET == INVALID_HANDLE_VALUE == (unsigned int)(~0) */ -/* SOCKET_ERROR == -1 */ -#define ENOTSOCK WSAENOTSOCK -#define EINTR WSAEINTR -#define ENOBUFS WSAENOBUFS -#define EWOULDBLOCK WSAEWOULDBLOCK -#define EAFNOSUPPORT WSAEAFNOSUPPORT -/* from public\sdk\inc\crt\errno.h */ -#define ENOSPC 28 -#endif /* WIN32 */ - -/* - * - */ - -#ifndef INET_ADDRSTRLEN -#define INET_ADDRSTRLEN 16 -#endif - -static const char * -inet_ntop_v4 (const void *src, char *dst, size_t size) -{ - const char digits[] = "0123456789"; - int i; - struct in_addr *addr = (struct in_addr *)src; - u_long a = ntohl(addr->s_addr); - const char *orig_dst = dst; - - if (size < INET_ADDRSTRLEN) { - Set_errno(ENOSPC); - return NULL; - } - for (i = 0; i < 4; ++i) { - int n = (a >> (24 - i * 8)) & 0xFF; - int non_zerop = 0; - - if (non_zerop || n / 100 > 0) { - *dst++ = digits[n / 100]; - n %= 100; - non_zerop = 1; - } - if (non_zerop || n / 10 > 0) { - *dst++ = digits[n / 10]; - n %= 10; - non_zerop = 1; - } - *dst++ = digits[n]; - if (i != 3) - *dst++ = '.'; - } - *dst++ = '\0'; - return orig_dst; -} - -const char * -inet_ntop(int af, const void *src, char *dst, size_t size) -{ - switch (af) { - case AF_INET : - return inet_ntop_v4 (src, dst, size); - default : - Set_errno(EAFNOSUPPORT); - return NULL; - } -} |