summaryrefslogtreecommitdiffstats
path: root/man3/ether_aton.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/ether_aton.3')
-rw-r--r--man3/ether_aton.3116
1 files changed, 116 insertions, 0 deletions
diff --git a/man3/ether_aton.3 b/man3/ether_aton.3
new file mode 100644
index 000000000..a74e3515c
--- /dev/null
+++ b/man3/ether_aton.3
@@ -0,0 +1,116 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright 2002 Ian Redfern (redferni@logica.com)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" FreeBSD 4.4 man pages
+.\"
+.\" Minor additions, aeb, 2002-07-20
+.\"
+.TH ETHER_ATON 3 2002-07-20 "BSD" "Linux Programmer's Manual"
+.SH NAME
+ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line,
+ether_ntoa_r, ether_aton_r \- Ethernet address manipulation routines
+.SH SYNOPSIS
+.nf
+.B #include <netinet/ether.h>
+.sp
+.BI "char *"
+.BI "ether_ntoa(const struct ether_addr *" addr );
+.sp
+.BI "struct ether_addr *"
+.BI "ether_aton(const char *" asc );
+.sp
+.BI "int"
+.BI "ether_ntohost(char *" hostname ", const struct ether_addr *" addr );
+.sp
+.BI "int"
+.BI "ether_hostton(const char *" hostname ", struct ether_addr *" addr );
+.sp
+.BI "int"
+.BI "ether_line(const char *" line ", struct ether_addr *" addr ,
+.BI " char *" hostname );
+.sp
+/* GNU extensions */
+.br
+.BI "char *"
+.BI "ether_ntoa_r(const struct ether_addr *" addr ", char *" buf );
+.sp
+.BI "struct ether_addr *"
+.BI "ether_aton_r(const char *" asc ", struct ether_addr *" addr );
+.fi
+.SH DESCRIPTION
+\fBether_aton()\fP converts the 48-bit Ethernet host address \fIasc\fP
+from the standard hex-digits-and-colons notation into binary data in
+network byte order and returns a pointer to it in a statically
+allocated buffer, which subsequent calls will
+overwrite. \fBether_aton\fP returns NULL if the address is invalid.
+.PP
+The \fBether_ntoa()\fP function converts the Ethernet host address
+\fIaddr\fP given in network byte order to a string in standard
+hex-digits-and-colons notation, omitting leading zeroes.
+The string is returned in a statically allocated buffer,
+which subsequent calls will overwrite.
+.PP
+The \fBether_ntohost()\fP function maps an Ethernet address to the
+corresponding hostname in
+.B /etc/ethers
+and returns non-zero if it cannot be found.
+.PP
+The \fBether_hostton()\fP function maps a hostname to the
+corresponding Ethernet address in
+.B /etc/ethers
+and returns non-zero if it cannot be found.
+.PP
+The \fBether_line()\fP function parses a line in
+.B /etc/ethers
+format (ethernet address followed by whitespace followed by
+hostname; '#' introduces a comment) and returns an address
+and hostname pair, or non-zero if it cannot be parsed.
+The buffer pointed to by
+.I hostname
+must be sufficiently long, e.g., have the same length as
+.IR line .
+.PP
+The functions \fBether_ntoa_r\fP and \fBether_aton_r\fP are re-entrant
+threadsafe versions of \fBether_ntoa\fP and \fBether_aton\fP
+respectively, and do not use static buffers.
+.PP
+The structure \fIether_addr\fP is defined in \fInet/ethernet.h\fP as:
+.sp
+.RS
+.nf
+.ta 8n 16n
+struct ether_addr {
+ u_int8_t ether_addr_octet[6];
+}
+.ta
+.fi
+.RE
+.SH BUGS
+The glibc 2.2.5 implementation of ether_line() is broken.
+.SH "CONFORMING TO"
+BSD 4.3, SunOS
+.SH "SEE ALSO"
+.BR ethers (5)