summaryrefslogtreecommitdiff
path: root/edgemesh
diff options
context:
space:
mode:
authorArcanique <strugaml@163.com>2019-07-10 19:18:55 +0800
committerArcanique <strugaml@163.com>2019-07-12 14:34:08 +0800
commit5b0abc18a23c830363575edc07af375936f51fb6 (patch)
tree6df2df960f253f77a9e9ec8f20bc2d8e9369ae2c /edgemesh
parentAdd feature : Pass through the DNS request if the client does not access the ... (diff)
downloadkubeedge-5b0abc18a23c830363575edc07af375936f51fb6.tar.gz
Fix the panic error when interface is not create
Diffstat (limited to 'edgemesh')
-rw-r--r--edgemesh/pkg/server/dns.go25
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{