/*
* Copyright (c) 1986, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* J.Q. Johnson.
*
* Portions copyright (c) 1999, 2000
* Intel Corporation.
* 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
*
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
*
* This product includes software developed by the University of
* California, Berkeley, Intel Corporation, and its contributors.
*
* 4. Neither the name of University, Intel Corporation, or their respective
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS, INTEL CORPORATION 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 REGENTS,
* INTEL CORPORATION 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.
*
*/
#endif /* LIBC_SCCS and not lint */
#include <stdio.h>
#include <string.h>
struct ns_addr
const char *name
)
{
char separator;
/*
* First, figure out what he intends as a field separtor.
* Despite the way this routine is written, the prefered
* form 2-272.AA001234H.01777, i.e. XDE standard.
* Great efforts are made to insure backward compatability.
*/
separator = '#';
else {
separator = ':';
} else
separator = '.';
}
if (hostname)
*hostname++ = 0;
if (hostname == 0)
return (addr); /* No separator means net only */
if (socketname) {
*socketname++ = 0;
}
return (addr);
}
static void
char *buf,
int len
)
{
char *fmt;
/*
* first try 2-273#2-852-151-014#socket
*/
if ((*buf != '-') &&
return;
}
/*
* try form 8E1#0.0.AA.0.5E.E6#socket
*/
return;
}
/*
* try form 8E1#0:0:AA:0:5E:E6#socket
*/
return;
}
/*
* This is REALLY stretching it but there was a
* comma notation separting shorts -- definitely non standard
*/
return;
}
/* Need to decide if base 10, 16 or 8 */
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '-':
break;
case '8': case '9':
base10 = 1;
break;
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
base16 = 1;
break;
case 'x': case 'X':
*--bp = '0';
base16 = 1;
break;
case 'h': case 'H':
base16 = 1;
/* fall into */
default:
*--bp = 0; /* Ends Loop */
}
if (base16) {
fmt = "%3x";
ibase = 4096;
fmt = "%3o";
ibase = 512;
} else {
fmt = "%3d";
ibase = 1000;
}
bp[0] = 0;
hp--;
bp -= 3;
}
}
static void
long oldbase,
int newbase,
int input[],
int inlen,
unsigned char result[],
int reslen
)
{
int d, e;
long sum;
e = 1;
while (e > 0 && reslen > 0) {
d = 0; e = 0; sum = 0;
while (d < inlen) {
e += (sum > 0);
}
}
for (d=0; d < reslen; d++)
result[d] = 0;
}