in reply to What should be default for Net::Server - IPv4, IPv6 or IPv*

I'd opt for compatibility for now and keep the default at v4. Those who want IPv6 will have some workaround in place and will be happy to hear they can simplify their code now, and those who don't want to change their legacy applications when they get some automated upgrade needn't worry about suddenly accepting connections they may not be fully prepared to accept due to some assumptions about v4 peer addresses and similar legacy problems. In a year or two when v6 is more widespread it should be time to change the default.
  • Comment on Re: What should be default for Net::Server - IPv4, IPv6 or IPv*

Replies are listed 'Best First'.
Re^2: What should be default for Net::Server - IPv4, IPv6 or IPv*
by FloydATC (Deacon) on Jun 01, 2012 at 11:35 UTC
    This is just another good reason to use a default value of "*" IMHO. Changing the default somewhere down the road just because one's subjective opinion on what's become more widespread would guarantee breakage in scripts depending on Net::Server in one way or another.

    -- Time flies when you don't know what you're doing
      You mean, "rather break them now than later"? Because I don't see how changing the default later would guarantee breakage with any higher probability than now. Perceptions of what is "widespread enough" are of course necessarily subjective, just like perceptions of what should be given more weight, compatibility or "moving forward".
Re^2: What should be default for Net::Server - IPv4, IPv6 or IPv*
by Rhandom (Curate) on Jun 01, 2012 at 13:14 UTC
    The only problem with compatibility - is compatibility with which version.

    IPv4 as default is compatible with all official versions including 0.99.

    IPv* as default is compatible with the unofficial (but head for 9 months) version

    my @a=qw(random brilliant braindead); print $a[rand(@a)];
      but IP* would work for anyone who has ipv4 already set... i.e., it doesn't break anything. It just adds ipv6 to the mix. I basically ran across this because our company is making massive moves to make sure everything easily supports ipv4, ipv4/ipv6, and ipv6 modes of operation.

      Compatibility with what most people use. People who use unofficial HEADs should know what they are doing and particularly be aware that defaults may change from one version to the other---obviously they've had this experience at least once. Those who just run "aptitude upgrade" or equivalents to be fed the latest stable version are less likely to pay attention to these things and just expect their applications to behave the same. You could just warn() people who haven't explicitly set a protocol family about impending changes in the default for a while and then switch it.