diff options
Diffstat (limited to 'src/lib/libc/net/ethers.3')
| -rw-r--r-- | src/lib/libc/net/ethers.3 | 82 |
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 |
| 24 | Ethernet addresses are represented by the | 32 | Ethernet addresses are represented by the |
| 25 | following structure: | 33 | following structure: |
| 26 | .Bd -literal -offset indent | 34 | .Bd -literal -offset indent |
| 27 | struct ether_addr { | 35 | struct 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 |
| 32 | The | 40 | The |
| 33 | .Fn ether_ntoa | 41 | .Fn ether_ntoa |
| 34 | function converts this structure into an ASCII string of the form | 42 | function converts this structure into an |
| 35 | ``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated | 43 | .Tn ASCII |
| 36 | by colons. It returns a pointer to a static buffer that is reused for | 44 | string of the form |
| 37 | each call. | 45 | .Dq xx:xx:xx:xx:xx:xx , |
| 46 | consisting of 6 hexadecimal numbers separated | ||
| 47 | by colons. | ||
| 48 | It returns a pointer to a static buffer that is reused for each call. | ||
| 38 | The | 49 | The |
| 39 | .Fn ether_aton | 50 | .Fn ether_aton |
| 40 | converts an ASCII string of the same form and to a structure | 51 | converts an |
| 41 | containing the 6 octets of the address. It returns a pointer to a | 52 | .Tn ASCII |
| 42 | static structure that is reused for each call. | 53 | string of the same form and to a structure |
| 54 | containing the 6 octets of the address. | ||
| 55 | It returns a pointer to a static structure that is reused for each call. | ||
| 56 | .Fn ether_aton | ||
| 57 | will return NULL if the string does not represent a valid address. | ||
| 43 | .Pp | 58 | .Pp |
| 44 | The | 59 | The |
| 45 | .Fn ether_ntohost | 60 | .Fn ether_ntohost |
| 46 | and | 61 | and |
| 47 | .Fn ether_hostton | 62 | .Fn ether_hostton |
| 48 | functions interrogate the data base mapping host names to Ethernet | 63 | functions interrogate the database mapping host names to Ethernet |
| 49 | addresses, | 64 | addresses, |
| 50 | .Pa /etc/ethers . | 65 | .Pa /etc/ethers . |
| 51 | The | 66 | The |
| 52 | .Fn ether_ntohost | 67 | .Fn ether_ntohost |
| 53 | function looks up the given Ethernet address and writes the associated | 68 | function looks up the given Ethernet address and writes the associated |
| 54 | host name into the character buffer passed. | 69 | host name into the character buffer passed. |
| 70 | This buffer should be | ||
| 71 | .Dv MAXHOSTNAMELEN | ||
| 72 | characters in size. | ||
| 55 | The | 73 | The |
| 56 | .Fn ether_hostton | 74 | .Fn ether_hostton |
| 57 | function looks up the given host name and writes the associated | 75 | function looks up the given host name and writes the associated |
| 58 | Ethernet address into the structure passed. Both functions return | 76 | Ethernet address into the structure passed. |
| 59 | zero if they find the requested host name or address, and -1 if not. | 77 | Both functions return |
| 78 | zero if they find the requested host name or address, and \-1 if not. | ||
| 79 | .Pp | ||
| 60 | Each call reads | 80 | Each call reads |
| 61 | .Pa /etc/ethers | 81 | .Pa /etc/ethers |
| 62 | from the beginning; if a + appears alone on a line in the file, then | 82 | from the beginning; if a |
| 83 | .Ql + | ||
| 84 | appears alone on a line in the file, then | ||
| 63 | .Fn ether_hostton | 85 | .Fn ether_hostton |
| 64 | will consult the | 86 | will consult the |
| 65 | .Pa ethers.byname | 87 | .Pa ethers.byname |
| @@ -73,9 +95,13 @@ The | |||
| 73 | .Fn ether_line | 95 | .Fn ether_line |
| 74 | function parses a line from the | 96 | function parses a line from the |
| 75 | .Pa /etc/ethers | 97 | .Pa /etc/ethers |
| 76 | file and fills in the passed ``struct ether_addr'' and character | 98 | file and fills in the passed |
| 77 | buffer with the Ethernet address and host name on the line. It | 99 | .Li struct ether_addr |
| 78 | returns zero if the line was successfully parsed and -1 if not. | 100 | and character buffer with the Ethernet address and host name on the line. |
| 101 | It returns zero if the line was successfully parsed and \-1 if not. | ||
| 102 | The character buffer should be | ||
| 103 | .Dv MAXHOSTNAMELEN | ||
| 104 | characters 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 | |||
| 91 | and | 117 | and |
| 92 | .Fn ether_line | 118 | .Fn ether_line |
| 93 | functions were adopted from SunOS and appeared in | 119 | functions were adopted from SunOS and appeared in |
| 94 | NetBSD 0.9b. | 120 | .Nx 0.9b . |
| 95 | .Sh BUGS | 121 | .Sh BUGS |
| 96 | The data space used by these functions is static; if future use | 122 | The data space used by these functions is static; if future use |
| 97 | requires the data, it should be copied before any subsequent calls to | 123 | requires the data, it should be copied before any subsequent calls to |
| 98 | these functions overwrite it. There is no way to restrict how many | 124 | these functions overwrite it. |
| 99 | character will be written into the host name buffer passed. A very | ||
| 100 | long line in | ||
| 101 | .Pa /etc/ethers | ||
| 102 | could overflow your buffer. | ||
