~ubuntu-branches/ubuntu/saucy/juju-core/saucy-proposed

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/utils/network.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-07-11 17:18:27 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20130711171827-vjqkg40r0dlf7ys2
Tags: 1.11.2-0ubuntu1
* New upstream release.
* Make juju-core the default juju (LP: #1190634):
  - d/control: Add virtual package juju -> juju-core.
  - d/juju-core.postinst.in: Bump priority of alternatives over that of
    python juju packages.
* Enable for all architectures (LP: #1172505):
  - d/control: Version BD on golang-go to >= 2:1.1.1 to ensure CGO
    support for non-x86 archs, make juju-core Arch: any.
  - d/README.source: Dropped - no longer required.
* d/watch: Updated for new upstream tarball naming.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2013 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package utils
 
5
 
 
6
import (
 
7
        "fmt"
 
8
        "net"
 
9
)
 
10
 
 
11
// GetIPv4Address iterates through the addresses expecting the format from
 
12
// func (ifi *net.Interface) Addrs() ([]net.Addr, error)
 
13
func GetIPv4Address(addresses []net.Addr) (string, error) {
 
14
        for _, addr := range addresses {
 
15
                ip, _, err := net.ParseCIDR(addr.String())
 
16
                if err != nil {
 
17
                        return "", err
 
18
                }
 
19
                ipv4 := ip.To4()
 
20
                if ipv4 == nil {
 
21
                        continue
 
22
                }
 
23
                return ipv4.String(), nil
 
24
        }
 
25
        return "", fmt.Errorf("no addresses match")
 
26
}