NS(3) 386BSD Programmer's Manual NS(3)
NAME
nsaddr, nsntoa - Xerox NS(tm) address conversion routines
SYNOPSIS
#include <sys/types.h>
#include <netns/ns.h>
struct ns_addr
nsaddr(char *cp)
char *
nsntoa(struct ns_addr ns)
DESCRIPTION
The routine nsaddr() interprets character strings representing XNS
addresses, returning binary information suitable for use in system calls.
The routine nsntoa() takes XNS addresses and returns ASCII strings
representing the address in a notation in common use in the Xerox
Development Environment:
<network number>.<host number>.<port number>
Trailing zero fields are suppressed, and each number is printed in
hexadecimal, in a format suitable for input to nsaddr(). Any fields
lacking super-decimal digits will have a trailing `H' appended.
Unfortunately, no universal standard exists for representing XNS
addresses. An effort has been made to insure that nsaddr() be
compatible with most formats in common use. It will first separate an
address into 1 to 3 fields using a single delimiter chosen from period
`.', colon `:' or pound-sign `#'. Each field is then examined for byte
separators (colon or period). If there are byte separators, each
subfield separated is taken to be a small hexadecimal number, and the
entirety is taken as a network-byte-ordered quantity to be zero extended
in the high-network-order bytes. Next, the field is inspected for
hyphens, in which case the field is assumed to be a number in decimal
notation with hyphens separating the millenia. Next, the field is
assumed to be a number: It is interpreted as hexadecimal if there is a
leading `0x' (as in C), a trailing `H' (as in Mesa), or there are any
super-decimal digits present. It is interpreted as octal is there is a
leading `0' and there are no super-octal digits. Otherwise, it is
converted as a decimal number.
RETURN VALUES
None. (See BUGS.)
SEE ALSO
hosts(5), networks(5),
HISTORY
The nsaddr() and nstoa() functions appeared in 4.3BSD.
BUGS
The string returned by nsntoa() resides in a static memory area. The
function nsaddr() should diagnose improperly formed input, and there
should be an unambiguous way to recognize this.
4.3 Berkeley Distribution April 19, 1991 1