Hi,

Prelimiaries: I think this whole series should only go to 2.5, as it
has the potential to be fairly intrusive and uncover hidden bugs - I've
discussed this with Antonio already (and we're in agreement) but for
the sake of the list.


On Tue, Jun 05, 2018 at 05:04:17PM +0800, Antonio Quartulli wrote:
> From: Antonio Quartulli <anto...@openvpn.net>
> 
> This change ensures that an interface is properly brought
> up even when only IPv6 settings are configured.
> 
> This can be useful on a client that wants to ignore the IPv4
> settings pushed by the server and configure only IPv6.
> To achieve the above, a client can use
> `pull-filter ignore "ifconfig "` (thanks Gert for this hint).
> 
> Trac: #208
> Cc: Gert Doering <g...@greenie.muc.de>
> Signed-off-by: Antonio Quartulli <anto...@openvpn.net>

ACK on the feature, but NAK on "we can do this more nicely" reasons :-)

First, I'd leave off the bits about "this can be useful" of the commit
message - because that's not the point of this patch, you can *ignore* 
the settings already today.    Maybe word this

  "This patch enables the client to run IPv6-only on the tun/tap interface,
   but will not make it ignore a pushed IPv4 config.  To achieve that, one 
   can use 'pull-filter ignore "ifconfig "' on the client or 'push-filter' on
   the server".

(if we want to go into this here at all)


Then, splitting do_ifconfig() in a "we do all in here, except for IPv6,
which is in do_ifconfig_ipv6()" is not looking right - if we do it, do
it right, as in "split out do_ifconfig_ipv4() as well", make things fully
symmetric wrt ipv4/ipv6, and have do_ifconfig() look something like this:

do_ifconfig()
{
   msg (M_DEBUG, "do_ifconfig, ipv4=%d, ipv6=%d", u
                tt->did_ifconfig_setup, tt->did_ifconfig_ipv6_setup );
   if (tt->did_ifconfig_setup)
      do_ifconfig_ipv4()
   if (tt->did_ifconfig_ipv6_setup)
      do_ifconfig_ipv6()

   if (management)
     management_set_state()
}

... and get rid of the "if (tt->did_ifconfig_setup)" extra nesting level
in do_ifconfig() and do_ifconfig_ipv6().


Of course we'll also need to check if typical consumers of the management 
interface explode if you're not giving an IPv4 address to them...

Selva, Jonathan, how will our GUI and Tunnelblick handle that?

gert
-- 
"If was one thing all people took for granted, was conviction that if you 
 feed honest figures into a computer, honest figures come out. Never doubted 
 it myself till I met a computer with a sense of humor."
                             Robert A. Heinlein, The Moon is a Harsh Mistress

Gert Doering - Munich, Germany                             g...@greenie.muc.de

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to