discoverymgr : use zeroconf.RegisterProxy for resolving hostname 96/203796/1
authordaeken.kwon <daeken.kwon@samsung.com>
Thu, 18 Apr 2019 01:09:41 +0000 (10:09 +0900)
committerdaeken.kwon <daeken.kwon@samsung.com>
Thu, 18 Apr 2019 01:10:02 +0000 (10:10 +0900)
- Tizen OS can't resolve host name but mDNS need it
- multicast DNS (mDNS) protocol resolves host names to IP addresses

Change-Id: If96ad29915c84d963b773f5c9d303f7da3eb4da3
Signed-off-by: daeken.kwon <daeken.kwon@samsung.com>
src/discoverymgr/discovery_init.go

index 4e9db30..96e96d0 100755 (executable)
@@ -47,22 +47,41 @@ func InitDiscovery() (err error) {
 }
 
 func registerDevice(AppNames []string, ret chan error) {
-       serviceName, err := getMacAddr()
+       macAddress, err := getMacAddr()
        if err != nil {
                ret <- err
                return
        }
 
+       hostName := "edge-" + macAddress
+       serviceName := "edge-orchestarition-" + macAddress
+       var hostIPAddr []string
+
        var netIface []net.Interface
+       var v4 []net.IP
        ifaces, err := net.Interfaces()
        for _, iface := range ifaces {
                if iface.Name[0:2] == "wl" {
                        log.Println(logPrefix, "[RegisterDevice] net.interface - wl:", iface)
                        netIface = append(netIface, iface)
+                       addrs, _ := iface.Addrs()
+                       for _, address := range addrs {
+                               if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
+                                       if ipnet.IP.To4() != nil {
+                                               v4 = append(v4, ipnet.IP)
+                                               hostIPAddr = append(hostIPAddr, ipnet.IP.String())
+                                       }
+                               }
+                       }
                }
        }
 
-       server, err := zeroconf.Register(serviceName, serviceType, domain, servicePort, AppNames, netIface)
+       log.Println("hostName: ", hostName)
+       log.Println("hostIpAddr: ", hostIPAddr)
+       log.Println("serviceName: ", serviceName)
+
+       server, err := zeroconf.RegisterProxy(serviceName, serviceType, domain, servicePort, hostName, hostIPAddr, AppNames, netIface)
+       // server, err := zeroconf.Register(serviceName, serviceType, domain, servicePort, AppNames, netIface)
        if err != nil {
                ret <- err
                return