diff options
Diffstat (limited to 'usr/src/lib/libbc/libc/inet/inet_addr.c')
| -rw-r--r-- | usr/src/lib/libbc/libc/inet/inet_addr.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/usr/src/lib/libbc/libc/inet/inet_addr.c b/usr/src/lib/libbc/libc/inet/inet_addr.c deleted file mode 100644 index ac347b1965..0000000000 --- a/usr/src/lib/libbc/libc/inet/inet_addr.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 1987 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - /* from UCB 4.5 82/11/14 */ - -#include <sys/types.h> -#include <ctype.h> -#include <netinet/in.h> - -/* - * Internet address interpretation routine. - * All the network library routines call this - * routine to interpret entries in the data bases - * which are expected to be an address. - * The value returned is in network order. - */ -u_long -inet_addr(cp) - register char *cp; -{ - register u_long val, base, n; - register char c; - u_long parts[4], *pp = parts; - -again: - /* - * Collect number up to ``.''. - * Values are specified as for C: - * 0x=hex, 0=octal, other=decimal. - */ - val = 0; base = 10; - if (*cp == '0') { - if (*++cp == 'x' || *cp == 'X') - base = 16, cp++; - else - base = 8; - } - while (c = *cp) { - if (isdigit(c)) { - if ((c - '0') >= base) - break; - val = (val * base) + (c - '0'); - cp++; - continue; - } - if (base == 16 && isxdigit(c)) { - val = (val << 4) + (c + 10 - (islower(c) ? 'a' : 'A')); - cp++; - continue; - } - break; - } - if (*cp == '.') { - /* - * Internet format: - * a.b.c.d - * a.b.c (with c treated as 16-bits) - * a.b (with b treated as 24 bits) - */ - if (pp >= parts + 4) - return (-1); - *pp++ = val, cp++; - goto again; - } - /* - * Check for trailing characters. - */ - if (*cp && !isspace(*cp)) - return (-1); - *pp++ = val; - /* - * Concoct the address according to - * the number of parts specified. - */ - n = pp - parts; - switch (n) { - - case 1: /* a -- 32 bits */ - val = parts[0]; - break; - - case 2: /* a.b -- 8.24 bits */ - val = (parts[0] << 24) | (parts[1] & 0xffffff); - break; - - case 3: /* a.b.c -- 8.8.16 bits */ - val = (parts[0] << 24) | ((parts[1] & 0xff) << 16) | - (parts[2] & 0xffff); - break; - - case 4: /* a.b.c.d -- 8.8.8.8 bits */ - val = (parts[0] << 24) | ((parts[1] & 0xff) << 16) | - ((parts[2] & 0xff) << 8) | (parts[3] & 0xff); - break; - - default: - return (-1); - } - val = htonl(val); - return (val); -} |
