]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
[UDP(-Lite)]: consolidate v4 and v6 get|setsockopt code
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Mon, 27 Nov 2006 17:29:59 +0000 (09:29 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:30:45 +0000 (21:30 -0800)
commit4c0a6cb0db19de411c4bf7fcdc79d4c7c4ccafb1
treee7f793f8d259df2a37fa975325c25961a5d3e14b
parente3703b3de1f049b38733ba520e5038f23063068e
[UDP(-Lite)]: consolidate v4 and v6 get|setsockopt code

This patch consolidates set/getsockopt code between UDP(-Lite) v4 and 6. The
justification is that UDP(-Lite) is a transport-layer protocol and therefore
the socket option code (at least in theory) should be AF-independent.

Furthermore, there is the following code reduplication:
 * do_udp{,v6}_getsockopt is 100% identical between v4 and v6
 * do_udp{,v6}_setsockopt is identical up to the following differerence
--v4 in contrast to v4 additionally allows the experimental encapsulation
          types  UDP_ENCAP_ESPINUDP and UDP_ENCAP_ESPINUDP_NON_IKE
--the remainder is identical between v4 and v6
   I believe that this difference is of little relevance.

The advantages in not duplicating twice almost completely identical code.

The patch further simplifies the interface of udp{,v6}_push_pending_frames,
since for the second argument (struct udp_sock *up) it always holds that
up = udp_sk(sk); where sk is the first function argument.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/udp.h
net/ipv4/udp.c
net/ipv6/udp.c