Добавлена поддержка определения slave для сетевых устройств

master3.4 3.4.7.3
Mike Hiretsky 8 years ago
parent b4decbae1d
commit 2018bfa381

@ -50,6 +50,8 @@ SIOCGIFHWADDR = 0x8927
# Resources allocated # Resources allocated
IFF_RUNNING = 0x40 IFF_RUNNING = 0x40
IFF_MASTER = 0x400
IFF_SLAVE = 0x800
# ip digit from 0|1-255|254 (template) # ip digit from 0|1-255|254 (template)
IP_DIG = "[%s-9]|(?:1[0-9]|[1-9])[0-9]|2[0-4][0-9]|25[0-%s]" IP_DIG = "[%s-9]|(?:1[0-9]|[1-9])[0-9]|2[0-4][0-9]|25[0-%s]"
@ -243,8 +245,7 @@ def getIp(iface):
ip = struct.unpack('16sH2x4s8x', res)[2] ip = struct.unpack('16sH2x4s8x', res)[2]
return socket.inet_ntoa(ip) return socket.inet_ntoa(ip)
def checkFlag(iface, flag):
def getPlugged(iface):
sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00' * 14) ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00' * 14)
try: try:
@ -253,8 +254,16 @@ def getPlugged(iface):
return False return False
finally: finally:
sockfd.close() sockfd.close()
return bool(struct.unpack('16sH2x4s8x', res)[1] & IFF_RUNNING) return bool(struct.unpack('16sH2x4s8x', res)[1] & flag)
def getPlugged(iface):
return checkFlag(iface, IFF_RUNNING)
def isSlaveInterface(iface):
return checkFlag(iface, IFF_SLAVE)
def isMasterInterface(iface):
return checkFlag(iface, IFF_MASTER)
def getMask(iface): def getMask(iface):
""" """

Loading…
Cancel
Save