Chapter 28
|
|
28.1
|
The version number field and the next header
field in the IPv6 header are not available. The payload length
field is available as either an argument to one of the output
functions or as the return value from one of the input functions.
But, if a jumbo payload option is required, that actual option
itself is not available to an application. The fragment header is
also not available to an application.
|
|
|
28.2
|
Eventually, the client's socket receive buffer
will fill, causing the daemon's write to block. We do not
want this to happen, as that stops the daemon from handling any
more data on any of its sockets. The easiest solution is for the
daemon to set its end of the Unix domain connection to the client
to nonblocking. The daemon must then call write instead of
the wrapper function Write and just ignore an error of
EWOULDBLOCK.
|
|
|
28.3
|
28.3
Berkeley-derived kernels, by default, allow broadcasting on a raw
socket (p.1057 of TCPv2). The SO_BROADCAST socket option
needs to be specified only for UDP sockets.
|
|
|
28.4
|
Our program does not check for a multicast
address and does not set the IP_MULTICAST_IF socket
option. Therefore, the kernel chooses the outgoing interface,
probably by searching the routing table for 224.0.0.1. We also do
not set the IP_MULTICAST_TTL field, so it defaults to 1,
which is acceptable.
|
|