Sometimes there are mesh-links where the mac address from src is assigned to a wireless interface and the mac address from dst is assigned to a "other" interface. This seems to appear if the nodes do both: meshing via wireless AND meshing via LAN. The "exclude_clouds_with_lan_links" filter was not able to work properly therefore.

This fix always returns the interface type that deviates from "wireless" if the interface types of src and dst node are different. This fix should fix the problem mentioned in issue #4. The fix needs to be testet, maybe there are a few false positive results.
This commit is contained in:
Simon Wüllhorst 2016-07-19 18:14:33 +02:00
parent 985bf2f115
commit 779087bb99

View file

@ -8,15 +8,32 @@ class Link(object):
def __getLinkType__(self): def __getLinkType__(self):
type_src = None
type_dst = None
if self.__srcNode__ != None: if self.__srcNode__ != None:
for k, v in self.__srcNode__.interfaces.items(): for k, v in self.__srcNode__.interfaces.items():
if self.__jsonObject__['source']['interface_mac'] in v: if self.__jsonObject__['source']['interface_mac'] in v:
return k type_src = k
if self.__dstNode__ != None: if self.__dstNode__ != None:
for k, v in self.__dstNode__.interfaces.items(): for k, v in self.__dstNode__.interfaces.items():
if self.__jsonObject__['target']['interface_mac'] in v: if self.__jsonObject__['target']['interface_mac'] in v:
return k type_dst = k
if type_src == type_dst:
if type_src == None:
return 'unknown' return 'unknown'
return type_src
else:
if type_src == None:
return type_dst
elif type_dst == None:
return type_src
else:
#print(self.__srcNode__.hostname, type_src, '<-->', self.__dstNode__.hostname, type_dst)
if type_src == 'wireless':
return type_dst
else:
return type_src
def __getLinkVpnState__(self): def __getLinkVpnState__(self):
if self.__jsonObject__['vpn'] == True: if self.__jsonObject__['vpn'] == True: