• Gerrit Renker's avatar
    [UDP(-Lite)]: consolidate v4 and v6 get|setsockopt code · 4c0a6cb0
    Gerrit Renker authored
    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: default avatarGerrit Renker  <gerrit@erg.abdn.ac.uk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4c0a6cb0
udp.c 43.5 KB