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 18:12:52 +0000 (20:12 +0200)
commit6426e4edef7baddf377ee63baf43fbe39f4f5e79
tree207108838b43942714b80cf268bc66a93c6f482c
parentd264464404bf080498cbdafb3aa028ceb55c1ae2
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