|
|
1.1 ! root 1: .\" Copyright (c) 1986 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)ns.3n 6.2 (Berkeley) 5/12/86 ! 6: .\" ! 7: .TH NS 3N "May 12, 1986" ! 8: .UC 6 ! 9: .SH NAME ! 10: ns_addr, ns_ntoa \- Xerox NS(tm) address conversion routines ! 11: .SH SYNOPSIS ! 12: .nf ! 13: .B "#include <sys/types.h> ! 14: .B "#include <netns/ns.h> ! 15: .PP ! 16: .B "struct ns_addr ns_addr(cp) ! 17: .B "char *cp; ! 18: .PP ! 19: .B "char *ns_ntoa(ns) ! 20: .B "struct ns_addr ns; ! 21: .fi ! 22: .SH DESCRIPTION ! 23: The routine ! 24: .I ns_addr ! 25: interprets character strings representing ! 26: XNS addresses, returning binary information suitable ! 27: for use in system calls. ! 28: .I ns_ntoa ! 29: takes XNS addresses and returns ASCII ! 30: strings representing the address in a ! 31: notation in common use in the Xerox Development Environment: ! 32: .nf ! 33: <network number>.<host number>.<port number> ! 34: .fi ! 35: Trailing zero fields are suppressed, and each number is printed in hexadecimal, ! 36: in a format suitable for input to ! 37: .IR ns_addr . ! 38: Any fields lacking super-decimal digits will have a ! 39: trailing ``H'' appended. ! 40: .PP ! 41: Unfortunately, no universal standard exists for representing XNS addresses. ! 42: An effort has been made to insure that ! 43: .I ns_addr ! 44: be compatible with most formats in common use. ! 45: It will first separate an address into 1 to 3 fields using a single delimiter ! 46: chosen from ! 47: period (``.''), ! 48: colon (``:'') or pound-sign (``#''). ! 49: Each field is then examined for byte separators (colon or period). ! 50: If there are byte separators, each subfield separated is taken to be ! 51: a small hexadecimal number, and the entirety is taken as a network-byte-ordered ! 52: quantity to be zero extended in the high-network-order bytes. ! 53: Next, the field is inspected for hyphens, in which case ! 54: the field is assumed to be a number in decimal notation ! 55: with hyphens separating the millenia. ! 56: Next, the field is assumed to be a number: ! 57: It is interpreted ! 58: as hexadecimal if there is a leading ``0x'' (as in C), ! 59: a trailing ``H'' (as in Mesa), or there are any super-decimal digits present. ! 60: It is interpreted as octal is there is a leading ``0'' ! 61: and there are no super-octal digits. ! 62: Otherwise, it is converted as a decimal number. ! 63: .SH "SEE ALSO" ! 64: hosts(5), networks(5), ! 65: .SH DIAGNOSTICS ! 66: None (see BUGS). ! 67: .SH BUGS ! 68: The string returned by ! 69: .I ns_ntoa ! 70: resides in a static memory area. ! 71: .br ! 72: .I ns_addr ! 73: should diagnose improperly formed input, and there should be an unambiguous ! 74: way to recognize this.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.