Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Apr 2009 16:45:17 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/netinet ip_divert.c ip_output.c
Message-ID:  <200904141645.n3EGjSoZ095020@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
emaste      2009-04-14 16:45:17 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/netinet          ip_divert.c ip_output.c 
  Log:
  SVN rev 191063 on 2009-04-14 16:45:17Z by emaste
  
  MFC r171746 by csjp
  
  Summary:
  
  - We disallow multicast operations on divert sockets.  It really doesn't make
    semantic sense to allow this, since typically you would set multicast
    parameters on multicast end points.
  
    NOTE: As a part of this change, we actually dis-allow multicast options on
    any socket that IS a divert socket OR IS NOT a SOCK_RAW or SOCK_DGRAM family
  
  - We check to see if there are any socket options that have been specified on
    the socket, and if there was (which is very un-common and also probably
    doesnt make sense to support) we duplicate the mbuf carrying the options.
  
  - We then drop the INP/INFO locks over the call to ip_output().  It should be
    noted that since we no longer support multicast operations on divert sockets
    and we have duplicated any socket options, we no longer need the reference
    to the pcb to be coherent.
  
  - Finally, we replaced the call to ip_input() to use netisr queuing.  This
    should remove the recursive entry into the IP stack from divert.
  
  (The ip_output.c changes come from in_mcast.c in head.)
  
  Revision    Changes    Path
  1.113.2.4   +45 -10    src/sys/netinet/ip_divert.c
  1.242.2.22  +20 -0     src/sys/netinet/ip_output.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904141645.n3EGjSoZ095020>