net, cmd/fix: add IPv6 scoped addressing zone to INET, INET6 address structs
This CL starts to introduce IPv6 scoped addressing capability
into the net package.
The Public API changes are:
+pkg net, type IPAddr struct, Zone string
+pkg net, type IPNet struct, Zone string
+pkg net, type TCPAddr struct, Zone string
+pkg net, type UDPAddr struct, Zone string
Update #4234.
R=rsc, bradfitz, iant
CC=golang-dev
https://golang.org/cl/6849045
2012-11-27 00:45:42 +09:00
|
|
|
// Copyright 2012 The Go Authors. All rights reserved.
|
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
addTestCases(netipv6zoneTests, netipv6zone)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var netipv6zoneTests = []testCase{
|
|
|
|
|
{
|
|
|
|
|
Name: "netipv6zone.0",
|
|
|
|
|
In: `package main
|
|
|
|
|
|
|
|
|
|
import "net"
|
|
|
|
|
|
|
|
|
|
var a = []struct {
|
|
|
|
|
*net.IPNet
|
|
|
|
|
}{
|
|
|
|
|
&net.IPNet{net.ParseIP("2001:DB8::"), net.IPMask(net.ParseIP("ffff:ffff:ffff::"))},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func f() net.Addr {
|
|
|
|
|
b := net.IPNet{net.IPv4(127, 0, 0, 1), net.IPv4Mask(255, 0, 0, 0)}
|
|
|
|
|
c := &net.IPAddr{ip1}
|
|
|
|
|
sub(&net.UDPAddr{ip2, 12345})
|
|
|
|
|
d := &net.TCPAddr{IP: ip3, Port: 54321}
|
2013-03-07 19:06:19 +09:00
|
|
|
e := &net.TCPAddr{ip4, 0}
|
|
|
|
|
return &net.TCPAddr{ip5}, nil
|
net, cmd/fix: add IPv6 scoped addressing zone to INET, INET6 address structs
This CL starts to introduce IPv6 scoped addressing capability
into the net package.
The Public API changes are:
+pkg net, type IPAddr struct, Zone string
+pkg net, type IPNet struct, Zone string
+pkg net, type TCPAddr struct, Zone string
+pkg net, type UDPAddr struct, Zone string
Update #4234.
R=rsc, bradfitz, iant
CC=golang-dev
https://golang.org/cl/6849045
2012-11-27 00:45:42 +09:00
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
Out: `package main
|
|
|
|
|
|
|
|
|
|
import "net"
|
|
|
|
|
|
|
|
|
|
var a = []struct {
|
|
|
|
|
*net.IPNet
|
|
|
|
|
}{
|
|
|
|
|
&net.IPNet{IP: net.ParseIP("2001:DB8::"), Mask: net.IPMask(net.ParseIP("ffff:ffff:ffff::"))},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func f() net.Addr {
|
|
|
|
|
b := net.IPNet{IP: net.IPv4(127, 0, 0, 1), Mask: net.IPv4Mask(255, 0, 0, 0)}
|
|
|
|
|
c := &net.IPAddr{IP: ip1}
|
|
|
|
|
sub(&net.UDPAddr{IP: ip2, Port: 12345})
|
|
|
|
|
d := &net.TCPAddr{IP: ip3, Port: 54321}
|
2013-03-07 19:06:19 +09:00
|
|
|
e := &net.TCPAddr{IP: ip4}
|
|
|
|
|
return &net.TCPAddr{IP: ip5}, nil
|
net, cmd/fix: add IPv6 scoped addressing zone to INET, INET6 address structs
This CL starts to introduce IPv6 scoped addressing capability
into the net package.
The Public API changes are:
+pkg net, type IPAddr struct, Zone string
+pkg net, type IPNet struct, Zone string
+pkg net, type TCPAddr struct, Zone string
+pkg net, type UDPAddr struct, Zone string
Update #4234.
R=rsc, bradfitz, iant
CC=golang-dev
https://golang.org/cl/6849045
2012-11-27 00:45:42 +09:00
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
},
|
|
|
|
|
}
|