⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inet_neta.c

📁 package of develop dns
💻 C
字号:
/* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */#if defined(LIBC_SCCS) && !defined(lint)static const char rcsid[] = "$Id: inet_neta.c,v 1.1.206.1 2004/03/09 08:33:33 marka Exp $";#endif#include "port_before.h"#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>#include <stdio.h>#include <string.h>#include "port_after.h"#ifdef SPRINTF_CHAR# define SPRINTF(x) strlen(sprintf/**/x)#else# define SPRINTF(x) ((size_t)sprintf x)#endif/* * char * * inet_neta(src, dst, size) *	format a u_long network number into presentation format. * return: *	pointer to dst, or NULL if an error occurred (check errno). * note: *	format of ``src'' is as for inet_network(). * author: *	Paul Vixie (ISC), July 1996 */char *inet_neta(src, dst, size)	u_long src;	char *dst;	size_t size;{	char *odst = dst;	char *tp;	while (src & 0xffffffff) {		u_char b = (src & 0xff000000) >> 24;		src <<= 8;		if (b) {			if (size < sizeof "255.")				goto emsgsize;			tp = dst;			dst += SPRINTF((dst, "%u", b));			if (src != 0L) {				*dst++ = '.';				*dst = '\0';			}			size -= (size_t)(dst - tp);		}	}	if (dst == odst) {		if (size < sizeof "0.0.0.0")			goto emsgsize;		strcpy(dst, "0.0.0.0");	}	return (odst); emsgsize:	errno = EMSGSIZE;	return (NULL);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -