summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/linux/net/ns.3
blob: be8d155c3e4c332d7d1e0808e05981b13c2cd054 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
NS(3)                              BSD Library Functions Manual                             NS(3)

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

LIBRARY
     Standard C Library (libc, -lc)

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 bi-
     nary information suitable for use in system calls.  The routine ns_ntoa() takes XNS ad-
     dresses 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 ns_addr().  Any fields lacking super-decimal digits will have a trail-
     ing 'H' appended.

     Unfortunately, no universal standard exists for representing XNS addresses.  An effort has
     been made to insure that ns_addr() 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 hexa-
     decimal number, and the entirety is taken as a network-byte-ordered quantity to be zero ex-
     tended 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-deci-
     mal 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 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