diff options
| author | Arcanique <strugaml@163.com> | 2019-07-10 19:18:55 +0800 |
|---|---|---|
| committer | Arcanique <strugaml@163.com> | 2019-07-12 14:34:08 +0800 |
| commit | 5b0abc18a23c830363575edc07af375936f51fb6 (patch) | |
| tree | 6df2df960f253f77a9e9ec8f20bc2d8e9369ae2c /edgemesh | |
| parent | Add feature : Pass through the DNS request if the client does not access the ... (diff) | |
| download | kubeedge-5b0abc18a23c830363575edc07af375936f51fb6.tar.gz | |
Fix the panic error when interface is not create
Diffstat (limited to 'edgemesh')
| -rw-r--r-- | edgemesh/pkg/server/dns.go | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/edgemesh/pkg/server/dns.go b/edgemesh/pkg/server/dns.go index 1e36844a0..eb9c9ccc1 100644 --- a/edgemesh/pkg/server/dns.go +++ b/edgemesh/pkg/server/dns.go @@ -76,20 +76,26 @@ func DnsStart() { // getDnsServer returns the specific interface ip of version 4 func getDnsServer() (net.IP, error) { - ifaces, err := net.InterfaceByName(inter) - if err != nil { - return nil, err - } + for { + ifaces, err := net.InterfaceByName(inter) + if err != nil { + log.LOGGER.Warnf("get interface error : %s", err) + time.Sleep(time.Second * 3) + continue + } - addrs, _ := ifaces.Addrs() + addrs, _ := ifaces.Addrs() - for _, addr := range addrs { - if ip, inet, _ := net.ParseCIDR(addr.String()); len(inet.Mask) == 4 { - return ip, nil + for _, addr := range addrs { + if ip, inet, _ := net.ParseCIDR(addr.String()); len(inet.Mask) == 4 { + return ip, nil + } } + + log.LOGGER.Warnf("the interface " + inter + " has not config ip of version 4") + time.Sleep(time.Second * 3) } - return nil, errors.New("the interface" + inter + "have not config ip of version 4") } // startDnsServer start the DNS Server @@ -101,6 +107,7 @@ func startDnsServer() { lip, err := getDnsServer() if err != nil { log.LOGGER.Errorf("Dns server Start error : %s", err) + return } laddr := &net.UDPAddr{ |
