eCos Reference Manual
Prev | Chapter 38. TCP/IP Library Reference | Next

# ns

    NS(3)                   System Library Functions Manual                  NS(3)

    NAME
         ns_addr, ns_ntoa - Xerox NS(tm) address conversion routines

    SYNOPSIS
         #include <sys/types.h>
         #include <netns/ns.h>

         struct ns_addr
         ns_addr(char *cp);

         char *
         ns_ntoa(struct ns_addr ns);

    DESCRIPTION
         The routine ns_addr() interprets character strings representing XNS
         addresses, returning binary information suitable for use in system calls.
         The routine ns_ntoa() takes XNS addresses and returns ASCII strings rep-
         resenting the address in a notation in common use in the Xerox Develop-
         ment Environment:

               <network number>.<host number>.<port number>

         Trailing zero fields are suppressed, and each number is printed in hex-
         adecimal, in a format suitable for input to ns_addr().  Any fields lack-
         ing super-decimal digits will have a trailing `H' appended.

         Unfortunately, no universal standard exists for representing XNS
         addresses.  An effort has been made to ensure that ns_addr() be compati-
         ble 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 sub-
         field 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 con-
         verted as a decimal number.

    RETURN VALUES
         None.  (See BUGS.)

    SEE ALSO
         hosts(5), networks(5)

    HISTORY
         The ns_addr() and ns_toa() functions appeared in 4.3BSD.

    BUGS
         The string returned by ns_ntoa() resides in a static memory area.  The
         function ns_addr() should diagnose improperly formed input, and there
         should be an unambiguous way to recognize this.

    BSD                              June 4, 1993                              BSD

Prev | Home | Next
net_addrcmp | Up | resolver