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.382
1 files changed, 52 insertions, 30 deletions
diff --git a/src/lib/libc/net/ethers.3 b/src/lib/libc/net/ethers.3
index 81e6c65935..041ee981ec 100644
--- a/src/lib/libc/net/ethers.3
+++ b/src/lib/libc/net/ethers.3
@@ -1,65 +1,87 @@
1.\" $OpenBSD: ethers.3,v 1.21 2011/04/19 22:38:26 matthew 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 $Mdocdate: April 19 2011 $
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 ,
10.Nm ether_ntohost , 11.Nm ether_ntohost ,
11.Nm ether_hostton , 12.Nm ether_hostton ,
12.Nm ether_line , 13.Nm ether_line
13.Nd get ethers entry 14.Nd get ethers entry
14.Sh SYNOPSIS 15.Sh SYNOPSIS
16.Fd #include <sys/types.h>
17.Fd #include <sys/socket.h>
18.Fd #include <net/if.h>
19.Fd #include <netinet/in.h>
15.Fd #include <netinet/if_ether.h> 20.Fd #include <netinet/if_ether.h>
16.Ft char * 21.Ft char *
17.Fn ether_ntoa "struct ether_addr *e" 22.Fn ether_ntoa "struct ether_addr *e"
18.Ft struct ether_addr * 23.Ft struct ether_addr *
19.Fn ether_aton "char *s" 24.Fn ether_aton "const char *s"
25.Ft int
20.Fn ether_ntohost "char *hostname" "struct ether_addr *e" 26.Fn ether_ntohost "char *hostname" "struct ether_addr *e"
21.Fn ether_hostton "char *hostname" "struct ether_addr *e" 27.Ft int
22.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname" 28.Fn ether_hostton "const char *hostname" "struct ether_addr *e"
29.Ft int
30.Fn ether_line "const char *l" "struct ether_addr *e" "char *hostname"
23.Sh DESCRIPTION 31.Sh DESCRIPTION
24Ethernet addresses are represented by the 32Ethernet addresses are represented by the
25following structure: 33following structure:
26.Bd -literal -offset indent 34.Bd -literal -offset indent
27struct ether_addr { 35struct ether_addr {
28 u_char ether_addr_octet[6]; 36 u_int8_t ether_addr_octet[6];
29}; 37};
30.Ed 38.Ed
31.Pp 39.Pp
32The 40The
33.Fn ether_ntoa 41.Fn ether_ntoa
34function converts this structure into an ASCII string of the form 42function converts this structure into an
35``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated 43.Tn ASCII
36by colons. It returns a pointer to a static buffer that is reused for 44string of the form
37each call. 45.Dq xx:xx:xx:xx:xx:xx ,
46consisting of 6 hexadecimal numbers separated
47by colons.
48It returns a pointer to a static buffer that is reused for each call.
38The 49The
39.Fn ether_aton 50.Fn ether_aton
40converts an ASCII string of the same form and to a structure 51converts an
41containing the 6 octets of the address. It returns a pointer to a 52.Tn ASCII
42static structure that is reused for each call. 53string of the same form and to a structure
54containing the 6 octets of the address.
55It returns a pointer to a static structure that is reused for each call.
56.Fn ether_aton
57will return NULL if the string does not represent a valid address.
43.Pp 58.Pp
44The 59The
45.Fn ether_ntohost 60.Fn ether_ntohost
46and 61and
47.Fn ether_hostton 62.Fn ether_hostton
48functions interrogate the data base mapping host names to Ethernet 63functions interrogate the database mapping host names to Ethernet
49addresses, 64addresses,
50.Pa /etc/ethers . 65.Pa /etc/ethers .
51The 66The
52.Fn ether_ntohost 67.Fn ether_ntohost
53function looks up the given Ethernet address and writes the associated 68function looks up the given Ethernet address and writes the associated
54host name into the character buffer passed. 69host name into the character buffer passed.
70This buffer should be
71.Dv MAXHOSTNAMELEN
72characters in size.
55The 73The
56.Fn ether_hostton 74.Fn ether_hostton
57function looks up the given host name and writes the associated 75function looks up the given host name and writes the associated
58Ethernet address into the structure passed. Both functions return 76Ethernet address into the structure passed.
59zero if they find the requested host name or address, and -1 if not. 77Both functions return
78zero if they find the requested host name or address, and \-1 if not.
79.Pp
60Each call reads 80Each call reads
61.Pa /etc/ethers 81.Pa /etc/ethers
62from the beginning; if a + appears alone on a line in the file, then 82from the beginning; if a
83.Ql +
84appears alone on a line in the file, then
63.Fn ether_hostton 85.Fn ether_hostton
64will consult the 86will consult the
65.Pa ethers.byname 87.Pa ethers.byname
@@ -73,9 +95,13 @@ The
73.Fn ether_line 95.Fn ether_line
74function parses a line from the 96function parses a line from the
75.Pa /etc/ethers 97.Pa /etc/ethers
76file and fills in the passed ``struct ether_addr'' and character 98file and fills in the passed
77buffer with the Ethernet address and host name on the line. It 99.Li struct ether_addr
78returns zero if the line was successfully parsed and -1 if not. 100and character buffer with the Ethernet address and host name on the line.
101It returns zero if the line was successfully parsed and \-1 if not.
102The character buffer should be
103.Dv MAXHOSTNAMELEN
104characters in size.
79.Sh FILES 105.Sh FILES
80.Bl -tag -width /etc/ethers -compact 106.Bl -tag -width /etc/ethers -compact
81.It Pa /etc/ethers 107.It Pa /etc/ethers
@@ -91,12 +117,8 @@ The
91and 117and
92.Fn ether_line 118.Fn ether_line
93functions were adopted from SunOS and appeared in 119functions were adopted from SunOS and appeared in
94NetBSD 0.9b. 120.Nx 0.9b .
95.Sh BUGS 121.Sh BUGS
96The data space used by these functions is static; if future use 122The data space used by these functions is static; if future use
97requires the data, it should be copied before any subsequent calls to 123requires the data, it should be copied before any subsequent calls to
98these functions overwrite it. There is no way to restrict how many 124these 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.