base-files: network.sh: fix a number of IPv6 logic flaws
authorJo-Philipp Wich <jo@mein.io>
Thu, 8 Jun 2017 17:27:46 +0000 (19:27 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 8 Jun 2017 21:02:16 +0000 (23:02 +0200)
commite5db08edf7b0d10ca50073107eb05dd3d671cd55
tree539e240cf43473e4e377ec90fd68163cf68bf3f0
parent8a42d4d85113c5461d7a3cae3cc4c391d4a5a6ca
base-files: network.sh: fix a number of IPv6 logic flaws

* Change network_get_subnet6() to sensibly guess a suitable prefix

  Attempt to return the first non-linklocal, non-ula range, then attempt
  to return the first non-linklocal range and finally fall back to the
  previous behaviour of simply returning the first found item.

* Fix network_get_ipaddrs_all()

  Instead of replicating the flawed logic appending a fixed ":1" suffix
  to IPv6 addresses, rely on network_get_ipaddrs() and network_get_ipaddrs6()
  to build a single list of all interface addresses.

* Fix network_get_subnets6()

  Instead of replicating the flawed logic appending a fixed ":1" suffix
  to IPv6 addresses, rely on the ipv6-prefix-assignment.local-address
  field to figure out the proper network address.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/base-files/files/lib/functions/network.sh