Removed text implying that only in kernel 2.2 does IP_HDRINCL

prevent datagrams from being fragmented.
This commit is contained in:
Michael Kerrisk 2006-03-20 13:03:53 +00:00
parent 785e717bc1
commit 54f340b5ef
1 changed files with 8 additions and 8 deletions

View File

@ -88,16 +88,16 @@ been bound to its protocol before it is passed to other protocol handlers
.SH "ADDRESS FORMAT"
Raw sockets use the standard
.B sockaddr_in
.I sockaddr_in
address structure defined in
.BR ip (7).
The
.B sin_port
.I sin_port
field could be used to specify the IP protocol number,
but it is ignored for sending in Linux 2.2 and should be always
set to 0 (see BUGS)
For incoming packets
.B sin_port
.I sin_port
is set to the protocol of the packet.
See the
.I <netinet/in.h>
@ -109,7 +109,7 @@ Raw socket options can be set with
and read with
.BR getsockopt (2)
by passing the
.I IPPROTO_RAW
.B IPPROTO_RAW
.\" Or SOL_RAW on Linux
family flag.
@ -177,8 +177,9 @@ RAW sockets are generally rather unportable and should be avoided in
programs intended to be portable.
Sending on raw sockets should take the IP protocol from
.BR sin_port ;
this ability was lost in Linux 2.2. Work around is to use
.IR sin_port ;
this ability was lost in Linux 2.2.
The workaround is to use
.BR IP_HDRINCL .
.SH "ERROR HANDLING"
@ -242,10 +243,9 @@ When the
.B IP_HDRINCL
option is set datagrams will not be fragmented and are limited to
the interface MTU.
This is a limitation in Linux 2.2.
Setting the IP protocol for sending in
.B sin_port
.I sin_port
got lost in Linux 2.2.
The protocol that the socket was bound to or that
was specified in the initial