# HG changeset patch
# User Edouard Tisserant
# Date 1322484408 -3600
# Node ID 73295e742da264a4ce9fbf093200473e80e602d4
# Parent  edce87412f5a4d9912e070e1e5ae69568fdccd8d
Avoid starting Zeroconf if ip unspecified or set to localhost. Pick one interface address when given IP is 0.0.0.0

diff -r edce87412f5a -r 73295e742da2 Beremiz_service.py
--- a/Beremiz_service.py	Tue Nov 22 02:07:00 2011 +0100
+++ b/Beremiz_service.py	Mon Nov 28 13:46:48 2011 +0100
@@ -471,7 +471,10 @@
         
         # Configure and publish service
         # Not publish service if localhost in address params
-        if self.servicename is not None and self.ip_addr != "localhost" and self.ip_addr != "127.0.0.1":    
+        if (self.servicename is not None and 
+            self.ip_addr is not None and 
+            self.ip_addr != "localhost" and 
+            self.ip_addr != "127.0.0.1"):
             print "Publishing service on local network"
             self.servicepublisher = ServicePublisher.ServicePublisher()
             self.servicepublisher.RegisterService(self.servicename, self.ip_addr, self.port)
diff -r edce87412f5a -r 73295e742da2 runtime/ServicePublisher.py
--- a/runtime/ServicePublisher.py	Tue Nov 22 02:07:00 2011 +0100
+++ b/runtime/ServicePublisher.py	Mon Nov 28 13:46:48 2011 +0100
@@ -50,13 +50,13 @@
         self.service_name = 'Beremiz_%s.%s'%(name,self.service_type)
         self.name = name
         self.port = port
-        # No ip params -> get host ip
-        if ip is None:
-            ip = self.gethostaddr()
 
         self.server = Zeroconf.Zeroconf(ip)
+        print "MDNS brodcasting on :"+ip
 
-        # address: IP address as unsigned short, network byte order
+        if ip == "0.0.0.0":
+            ip = self.gethostaddr()
+        print "MDNS brodcasted service address :"+ip
         self.ip_32b = socket.inet_aton(ip)
 
         self.server.registerService(
@@ -65,7 +65,6 @@
                                   self.ip_32b,
                                   self.port,
                                   properties = self.serviceproperties))
-        print "MDNS brodcasting on :"+ip
         self.retrytimer=None
     
     def UnRegisterService(self):
diff -r edce87412f5a -r 73295e742da2 targets/LPC/__init__.py
--- a/targets/LPC/__init__.py	Tue Nov 22 02:07:00 2011 +0100
+++ b/targets/LPC/__init__.py	Mon Nov 28 13:46:48 2011 +0100
@@ -1,6 +1,6 @@
 import os
 from subprocess import Popen,PIPE
-from .. import toolchain_makefile
+from ..toolchain_makefile import toolchain_makefile
 import hashlib
 
 class LPC_target(toolchain_makefile):