summaryrefslogtreecommitdiff
path: root/src/lib/libc/net/ethers.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/net/ethers.3')
-rw-r--r--src/lib/libc/net/ethers.367
1 files changed, 42 insertions, 25 deletions
diff --git a/src/lib/libc/net/ethers.3 b/src/lib/libc/net/ethers.3
index 81e6c65935..0509c121b8 100644
--- a/src/lib/libc/net/ethers.3
+++ b/src/lib/libc/net/ethers.3
@@ -1,15 +1,17 @@
1.\" $OpenBSD: ethers.3,v 1.14 2001/08/06 10:42:26 mpech Exp $
1.\" 2.\"
2.\" Written by roland@frob.com. Public domain. 3.\" Written by roland@frob.com. Public domain.
3.\" 4.\"
4.Dd December 16, 1993 5.Dd December 16, 1993
5.Dt ETHERS 3 6.Dt ETHERS 3
6.Os NetBSD 7.Os
7.Sh NAME 8.Sh NAME
9.Nm ether_aton ,
8.Nm ether_ntoa , 10.Nm ether_ntoa ,
9.Nm ether_addr , 11.Nm ether_addr ,
10.Nm ether_ntohost , 12.Nm ether_ntohost ,
11.Nm ether_hostton , 13.Nm ether_hostton ,
12.Nm ether_line , 14.Nm ether_line
13.Nd get ethers entry 15.Nd get ethers entry
14.Sh SYNOPSIS 16.Sh SYNOPSIS
15.Fd #include <netinet/if_ether.h> 17.Fd #include <netinet/if_ether.h>
@@ -17,49 +19,64 @@
17.Fn ether_ntoa "struct ether_addr *e" 19.Fn ether_ntoa "struct ether_addr *e"
18.Ft struct ether_addr * 20.Ft struct ether_addr *
19.Fn ether_aton "char *s" 21.Fn ether_aton "char *s"
22.Ft int
20.Fn ether_ntohost "char *hostname" "struct ether_addr *e" 23.Fn ether_ntohost "char *hostname" "struct ether_addr *e"
24.Ft int
21.Fn ether_hostton "char *hostname" "struct ether_addr *e" 25.Fn ether_hostton "char *hostname" "struct ether_addr *e"
26.Ft int
22.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname" 27.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname"
23.Sh DESCRIPTION 28.Sh DESCRIPTION
24Ethernet addresses are represented by the 29Ethernet addresses are represented by the
25following structure: 30following structure:
26.Bd -literal -offset indent 31.Bd -literal -offset indent
27struct ether_addr { 32struct ether_addr {
28 u_char ether_addr_octet[6]; 33 u_int8_t ether_addr_octet[6];
29}; 34};
30.Ed 35.Ed
31.Pp 36.Pp
32The 37The
33.Fn ether_ntoa 38.Fn ether_ntoa
34function converts this structure into an ASCII string of the form 39function converts this structure into an
35``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated 40.Tn ASCII
36by colons. It returns a pointer to a static buffer that is reused for 41string of the form
37each call. 42.Dq xx:xx:xx:xx:xx:xx ,
43consisting of 6 hexadecimal numbers separated
44by colons.
45It returns a pointer to a static buffer that is reused for each call.
38The 46The
39.Fn ether_aton 47.Fn ether_aton
40converts an ASCII string of the same form and to a structure 48converts an
41containing the 6 octets of the address. It returns a pointer to a 49.Tn ASCII
42static structure that is reused for each call. 50string of the same form and to a structure
51containing the 6 octets of the address.
52It returns a pointer to a static structure that is reused for each call.
43.Pp 53.Pp
44The 54The
45.Fn ether_ntohost 55.Fn ether_ntohost
46and 56and
47.Fn ether_hostton 57.Fn ether_hostton
48functions interrogate the data base mapping host names to Ethernet 58functions interrogate the database mapping host names to Ethernet
49addresses, 59addresses,
50.Pa /etc/ethers . 60.Pa /etc/ethers .
51The 61The
52.Fn ether_ntohost 62.Fn ether_ntohost
53function looks up the given Ethernet address and writes the associated 63function looks up the given Ethernet address and writes the associated
54host name into the character buffer passed. 64host name into the character buffer passed.
65This buffer should be
66.Dv MAXHOSTNAMELEN
67characters in size.
55The 68The
56.Fn ether_hostton 69.Fn ether_hostton
57function looks up the given host name and writes the associated 70function looks up the given host name and writes the associated
58Ethernet address into the structure passed. Both functions return 71Ethernet address into the structure passed.
59zero if they find the requested host name or address, and -1 if not. 72Both functions return
73zero if they find the requested host name or address, and \-1 if not.
74.Pp
60Each call reads 75Each call reads
61.Pa /etc/ethers 76.Pa /etc/ethers
62from the beginning; if a + appears alone on a line in the file, then 77from the beginning; if a
78.Ql +
79appears alone on a line in the file, then
63.Fn ether_hostton 80.Fn ether_hostton
64will consult the 81will consult the
65.Pa ethers.byname 82.Pa ethers.byname
@@ -73,9 +90,13 @@ The
73.Fn ether_line 90.Fn ether_line
74function parses a line from the 91function parses a line from the
75.Pa /etc/ethers 92.Pa /etc/ethers
76file and fills in the passed ``struct ether_addr'' and character 93file and fills in the passed
77buffer with the Ethernet address and host name on the line. It 94.Li struct ether_addr
78returns zero if the line was successfully parsed and -1 if not. 95and character buffer with the Ethernet address and host name on the line.
96It returns zero if the line was successfully parsed and \-1 if not.
97The character buffer should be
98.Dv MAXHOSTNAMELEN
99characters in size.
79.Sh FILES 100.Sh FILES
80.Bl -tag -width /etc/ethers -compact 101.Bl -tag -width /etc/ethers -compact
81.It Pa /etc/ethers 102.It Pa /etc/ethers
@@ -91,12 +112,8 @@ The
91and 112and
92.Fn ether_line 113.Fn ether_line
93functions were adopted from SunOS and appeared in 114functions were adopted from SunOS and appeared in
94NetBSD 0.9b. 115.Nx 0.9 b.
95.Sh BUGS 116.Sh BUGS
96The data space used by these functions is static; if future use 117The data space used by these functions is static; if future use
97requires the data, it should be copied before any subsequent calls to 118requires the data, it should be copied before any subsequent calls to
98these functions overwrite it. There is no way to restrict how many 119these functions overwrite it.
99character will be written into the host name buffer passed. A very
100long line in
101.Pa /etc/ethers
102could overflow your buffer.