aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-02-01 14:03:39 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-02-01 14:15:50 +0100
commit395599f0cf5168e821eed2a3451b18344ae7b5bd (patch)
treea7c9ef13a9b16e35cdeebbab6e9491b960521f71
parentb06f4c0094d3c68be39ada0ed26ae99d51f48013 (diff)
downloadglibc-395599f0cf5168e821eed2a3451b18344ae7b5bd.zip
glibc-395599f0cf5168e821eed2a3451b18344ae7b5bd.tar.gz
glibc-395599f0cf5168e821eed2a3451b18344ae7b5bd.tar.bz2
manual: Update struct sockaddr_in, struct sockaddr_sin6 description
Clarify the byte order of the the struct fields and document sin6_flowinfo and sin6_scope_id.
-rw-r--r--ChangeLog6
-rw-r--r--manual/socket.texi39
2 files changed, 35 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 2e741a7..646dd79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-01 Florian Weimer <fweimer@redhat.com>
+
+ * manual/socket.texi (Internet Address Formats): Clarify the byte
+ order of struct sockaddr_in, struct sockaddr_in6. Document
+ sin6_flowinfo and sin6_scope_id.
+
2019-02-01 Wilco Dijkstra <wdijkstr@arm.com>
* sysdeps/posix/clock_getres.c (__clock_getres): Cleanup.
diff --git a/manual/socket.texi b/manual/socket.texi
index a6c44b7..cd7c0e7 100644
--- a/manual/socket.texi
+++ b/manual/socket.texi
@@ -779,16 +779,17 @@ Internet namespace. It has the following members:
@table @code
@item sa_family_t sin_family
This identifies the address family or format of the socket address.
-You should store the value @code{AF_INET} in this member.
-@xref{Socket Addresses}.
+You should store the value @code{AF_INET} in this member. The address
+family is stored in host byte order. @xref{Socket Addresses}.
@item struct in_addr sin_addr
-This is the Internet address of the host machine. @xref{Host
-Addresses}, and @ref{Host Names}, for how to get a value to store
-here.
+This is the IPv4 address. @xref{Host Addresses}, and @ref{Host
+Names}, for how to get a value to store here. The IPv4 address is
+stored in network byte order.
@item unsigned short int sin_port
-This is the port number. @xref{Ports}.
+This is the port number. @xref{Ports}. The port number is stored in
+network byte order.
@end table
@end deftp
@@ -804,18 +805,36 @@ namespace. It has the following members:
@item sa_family_t sin6_family
This identifies the address family or format of the socket address.
You should store the value of @code{AF_INET6} in this member.
-@xref{Socket Addresses}.
+@xref{Socket Addresses}. The address family is stored in host byte
+order.
@item struct in6_addr sin6_addr
This is the IPv6 address of the host machine. @xref{Host
Addresses}, and @ref{Host Names}, for how to get a value to store
-here.
+here. The address is stored in network byte order.
@item uint32_t sin6_flowinfo
-This is a currently unimplemented field.
+@cindex flow label
+@cindex IPv6 flow label
+@cindex traffic class
+@cindex IPv6 traffic class
+This combines the IPv6 traffic class and flow label values, as found
+in the IPv6 header. This field is stored in network byte order. Only
+the 28 lower bits (of the number in network byte order) are used; the
+remainig bits must be zero. The lower 20 bits are the flow label, and
+bits 20 to 27 are the the traffic class. Typically, this field is
+zero.
+
+@item uint32_t sin6_scope_id
+@cindex scope ID
+@cindex IPv6 scope ID
+For link-local addresses, this identifies the interface on which this
+address is valid. The scope ID is stored in host byte order.
+Typically, this field is zero.
@item uint16_t sin6_port
-This is the port number. @xref{Ports}.
+This is the port number. @xref{Ports}. The port number is stored in
+network byte order.
@end table
@end deftp