func GetCurrResult()

in cni/cni.go [365:430]


func GetCurrResult(network *network.NetworkInfo, endpoint *network.EndpointInfo, ifname string, cniConfig *NetworkConfig) cniTypesCurr.Result {
	result := cniTypesCurr.Result{
		IPs:    []*cniTypesCurr.IPConfig{},
		Routes: []*cniTypes.Route{}}

	var iFace = GetInterface(endpoint)

	if cniConfig.OptionalFlags.EnableDualStack == false {

		var ip = GetIP(network, endpoint)
		ip.InterfaceIndex = 0

		cIP := cniTypesCurr.IPConfig{
			Version: ip.Version,
			Address: net.IPNet{
				IP:   ip.Address.IP,
				Mask: ip.Address.Mask},
			Gateway:   ip.Gateway,
			Interface: &ip.InterfaceIndex,
		}

		result.IPs = append(result.IPs, &cIP)

	} else {

		ip4, ip6 := GetDualStackAddresses(endpoint)

		ip4.InterfaceIndex = 0

		cIP4 := cniTypesCurr.IPConfig{
			Version: ip4.Version,
			Address: net.IPNet{
				IP:   ip4.Address.IP,
				Mask: ip4.Address.Mask},
			Gateway:   ip4.Gateway,
			Interface: &ip4.InterfaceIndex,
		}

		result.IPs = append(result.IPs, &cIP4)

		if ip6 != nil {

			ip6.InterfaceIndex = 0

			cIP6 := cniTypesCurr.IPConfig{
				Version: ip6.Version,
				Address: net.IPNet{
					IP:   ip6.Address.IP,
					Mask: ip6.Address.Mask},
				Gateway:   ip6.Gateway,
				Interface: &ip6.InterfaceIndex,
			}

			result.IPs = append(result.IPs, &cIP6)
		}
	}

	// Add Interfaces to result.
	iface := &cniTypesCurr.Interface{
		Name: ifname,
		Mac:  string(iFace.MacAddress),
	}
	result.Interfaces = append(result.Interfaces, iface)

	return result
}