Swap command constants out for strings.
This commit is contained in:
20
nl80211.py
20
nl80211.py
@@ -252,16 +252,18 @@ class GenericNetlink(object):
|
|||||||
[0x10, 'nlctrl', _ctrl_attr],
|
[0x10, 'nlctrl', _ctrl_attr],
|
||||||
]
|
]
|
||||||
|
|
||||||
CTRL_CMD_NEWFAMILY = 0x01
|
_commands = {
|
||||||
CTRL_CMD_GETFAMILY = 0x03
|
'newfamily': 1,
|
||||||
|
'getfamily': 3,
|
||||||
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._netlink = Netlink()
|
self._netlink = Netlink()
|
||||||
self._UpdateMsgTypes()
|
self._UpdateMsgTypes()
|
||||||
self.Send('nlctrl', self._netlink.NLMSG_F_DUMP, self.CTRL_CMD_GETFAMILY, 1, '')
|
self.Send('nlctrl', self._netlink.NLMSG_F_DUMP, 'getfamily', 1, '')
|
||||||
for msg in self.Recv():
|
for msg in self.Recv():
|
||||||
msgtype, attrs = msg
|
msgtype, attrs = msg
|
||||||
assert msgtype == self.CTRL_CMD_NEWFAMILY, msgtype
|
assert msgtype == self._commands['newfamily'], msgtype
|
||||||
family_name = attrs['family_name'].rstrip('\0')
|
family_name = attrs['family_name'].rstrip('\0')
|
||||||
if family_name in self._msgtypes_by_name:
|
if family_name in self._msgtypes_by_name:
|
||||||
assert attrs['family_id'] == self._msgtypes_by_name[family_name][0], attrs['family_id']
|
assert attrs['family_id'] == self._msgtypes_by_name[family_name][0], attrs['family_id']
|
||||||
@@ -278,6 +280,8 @@ class GenericNetlink(object):
|
|||||||
|
|
||||||
def Send(self, msgtype, flags, cmd, version, msg):
|
def Send(self, msgtype, flags, cmd, version, msg):
|
||||||
accumulator = Accumulator()
|
accumulator = Accumulator()
|
||||||
|
if isinstance(cmd, str):
|
||||||
|
cmd = self._commands[cmd]
|
||||||
self._genlmsghdr.Pack(
|
self._genlmsghdr.Pack(
|
||||||
accumulator,
|
accumulator,
|
||||||
cmd=cmd,
|
cmd=cmd,
|
||||||
@@ -338,7 +342,9 @@ class NL80211(object):
|
|||||||
46: ('generation', u32),
|
46: ('generation', u32),
|
||||||
})
|
})
|
||||||
|
|
||||||
CMD_GET_STATION = 17
|
_commands = {
|
||||||
|
'get_station': 17,
|
||||||
|
}
|
||||||
|
|
||||||
STA_FLAG_AUTHORIZED = 1 << 0
|
STA_FLAG_AUTHORIZED = 1 << 0
|
||||||
STA_FLAG_SHORT_PREAMBLE = 1 << 1
|
STA_FLAG_SHORT_PREAMBLE = 1 << 1
|
||||||
@@ -355,7 +361,7 @@ class NL80211(object):
|
|||||||
def Send(self, flags, cmd, version, **attrs):
|
def Send(self, flags, cmd, version, **attrs):
|
||||||
accumulator = Accumulator()
|
accumulator = Accumulator()
|
||||||
self._nl80211_attr.Pack(accumulator, **attrs)
|
self._nl80211_attr.Pack(accumulator, **attrs)
|
||||||
self._gnl.Send('nl80211', flags, cmd, version, str(accumulator))
|
self._gnl.Send('nl80211', flags, self._commands[cmd], version, str(accumulator))
|
||||||
|
|
||||||
def Recv(self):
|
def Recv(self):
|
||||||
return self._gnl.Recv()
|
return self._gnl.Recv()
|
||||||
@@ -370,5 +376,5 @@ def GetIfIndex(if_name):
|
|||||||
|
|
||||||
|
|
||||||
nl = NL80211()
|
nl = NL80211()
|
||||||
nl.Send(Netlink.NLMSG_F_DUMP, nl.CMD_GET_STATION, 0, ifindex=GetIfIndex('wlan0'))
|
nl.Send(Netlink.NLMSG_F_DUMP, 'get_station', 0, ifindex=GetIfIndex('wlan0'))
|
||||||
print list(nl.Recv())
|
print list(nl.Recv())
|
||||||
|
|||||||
Reference in New Issue
Block a user