mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	Sun Dec 22 00:01:27 1996 Ulrich Drepper <drepper@cygnus.com> * inet/getnetgrent.c: Reformat copyright. * inet/getnetgrent_r.c (__internal_endnetgrent): Correct comment. (__internal_getnetgrent): Rename to __internal_getnetgrent_r as required in change nis/nss_compat/* at Thu Dec 19 14:24:50 1996. Reported by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>. * nss/nss_files/files-netgrp.c: Fix typo. * login/utmp_db.c: Comment out unused variables. * misc/tst-dirname.c: Provide prototype for main (for now). * new-malloc/mcheck-init.c: Include <mcheck.h>. * new-malloc/obstack.c: Provide real prototypes. * resolv/base64.c (b64_ntop): Use size_t as type of `i', not int. (b64_pton): Likewise for `tarindex'. * resolv/nsap_addr.c (inet_nsap_addr): Add cast to prevent warning. * stdio-common/Makefile: Add CFLAGS-vfprintf.c to prevent warning. * stdio-common/printf-parse.h: Remove definition of MIN and MAX. * stdio-common/printf-prs.c: Include <sys/param.h> to get MIN and MAX. * stdio-common/vfprintf.c: Likewise. * stdlib/gmp-impl.h: Only define MIN and MAX if not already done. * stdlib/tst-strtol.c: Don't use -2147483648 as unsigned long value. * sysdeps/generic/Makefile ($(subdir)=string): Define CFLAGS-wordcopy.c to prevent warning. * sysdeps/generic/mul_n.c (mpn_mul_n): Don't define as inline. * sysdeps/generic/wordcopy.c: De-ANSI-declfy. * sysdeps/i386/Makefile ($(subdir)=elf): Define CFLAGS-rtld.c to prevent warning. * sysdeps/i386/dl-machine.h: Correct copyright. * sysdeps/unix/closedir.c: Likewise. * sysdeps/unix/dirstream.h: Likewise. * sysdeps/unix/opendir.c: Likewise. * time/tzset.c: Add prototype for __tzset_internal. * sysdeps/gnu/utmpbits.h (enum utlogin): Comment out since the way it is supposed to work is not yet known. (struct utmp): Remove ut_login and ut_syslen field for now. Sat Dec 21 16:23:54 1996 Ulrich Drepper <drepper@cygnus.com> * time/strftime.c: Fix another bug in handling flags made it impossible to use the `-', `_', or `0' flag.
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 1996 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 INTERNET SOFTWARE CONSORTIUM DISCLAIMS
 | 
						|
 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
 | 
						|
 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
 | 
						|
 * CONSORTIUM 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 char rcsid[] = "$Id$";
 | 
						|
#endif /* LIBC_SCCS and not lint */
 | 
						|
 | 
						|
#include <sys/types.h>
 | 
						|
#include <sys/param.h>
 | 
						|
#include <sys/socket.h>
 | 
						|
#include <netinet/in.h>
 | 
						|
#include <arpa/nameser.h>
 | 
						|
#include <ctype.h>
 | 
						|
#include <resolv.h>
 | 
						|
 | 
						|
#include "../conf/portability.h"
 | 
						|
 | 
						|
#if !defined(isxdigit)	/* XXX - could be a function */
 | 
						|
static int
 | 
						|
isxdigit(c)
 | 
						|
	register int c;
 | 
						|
{
 | 
						|
	return ((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'F'));
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
static char
 | 
						|
xtob(c)
 | 
						|
	register int c;
 | 
						|
{
 | 
						|
	return (c - (((c >= '0') && (c <= '9')) ? '0' : '7'));
 | 
						|
}
 | 
						|
 | 
						|
u_int
 | 
						|
inet_nsap_addr(ascii, binary, maxlen)
 | 
						|
	const char *ascii;
 | 
						|
	u_char *binary;
 | 
						|
	int maxlen;
 | 
						|
{
 | 
						|
	register u_char c, nib;
 | 
						|
	u_int len = 0;
 | 
						|
 | 
						|
	while ((c = *ascii++) != '\0' && (int) len < maxlen) {
 | 
						|
		if (c == '.' || c == '+' || c == '/')
 | 
						|
			continue;
 | 
						|
		if (!isascii(c))
 | 
						|
			return (0);
 | 
						|
		if (islower(c))
 | 
						|
			c = toupper(c);
 | 
						|
		if (isxdigit(c)) {
 | 
						|
			nib = xtob(c);
 | 
						|
			if (c = *ascii++) {
 | 
						|
				c = toupper(c);
 | 
						|
				if (isxdigit(c)) {
 | 
						|
					*binary++ = (nib << 4) | xtob(c);
 | 
						|
					len++;
 | 
						|
				} else
 | 
						|
					return (0);
 | 
						|
			}
 | 
						|
			else
 | 
						|
				return (0);
 | 
						|
		}
 | 
						|
		else
 | 
						|
			return (0);
 | 
						|
	}
 | 
						|
	return (len);
 | 
						|
}
 | 
						|
 | 
						|
char *
 | 
						|
inet_nsap_ntoa(binlen, binary, ascii)
 | 
						|
	int binlen;
 | 
						|
	register const u_char *binary;
 | 
						|
	register char *ascii;
 | 
						|
{
 | 
						|
	register int nib;
 | 
						|
	int i;
 | 
						|
	static char tmpbuf[255*3];
 | 
						|
	char *start;
 | 
						|
 | 
						|
	if (ascii)
 | 
						|
		start = ascii;
 | 
						|
	else {
 | 
						|
		ascii = tmpbuf;
 | 
						|
		start = tmpbuf;
 | 
						|
	}
 | 
						|
 | 
						|
	if (binlen > 255)
 | 
						|
		binlen = 255;
 | 
						|
 | 
						|
	for (i = 0; i < binlen; i++) {
 | 
						|
		nib = *binary >> 4;
 | 
						|
		*ascii++ = nib + (nib < 10 ? '0' : '7');
 | 
						|
		nib = *binary++ & 0x0f;
 | 
						|
		*ascii++ = nib + (nib < 10 ? '0' : '7');
 | 
						|
		if (((i % 2) == 0 && (i + 1) < binlen))
 | 
						|
			*ascii++ = '.';
 | 
						|
	}
 | 
						|
	*ascii = '\0';
 | 
						|
	return (start);
 | 
						|
}
 |