dect
/
libnl
Archived
13
0
Fork 0

Flags properties description and implementation fixed

1. Address, Link and Vlan classes affected with same bug
2. Flags property are not designed as set class. Setting to property will
   not replace flags, just add flags to set. So, jist document that, and
   fixed obvious logick.
This commit is contained in:
Коренберг Марк (ноутбук дома) 2012-06-04 23:39:30 +06:00
parent 38fefc5c1b
commit c1547d90d7
3 changed files with 42 additions and 9 deletions

View File

@ -147,17 +147,29 @@ class Address(netlink.Object):
@netlink.nlattr('address.flags', type=str, fmt=util.string)
@property
def flags(self):
"""Flags"""
"""Flags
Setting this property will *Not* reset flags to value you supply in
Examples:
addr.flags = '+xxx' # add xxx flag
addr.flags = 'xxx' # exactly the same
addr.flags = '-xxx' # remove xxx flag
addr.flags = [ '+xxx', '-yyy' ] # list operation
"""
flags = capi.rtnl_addr_get_flags(self._rtnl_addr)
return capi.rtnl_addr_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
if flag[0] == '-':
if flag.startswith('-'):
i = capi.rtnl_addr_str2flags(flag[1:])
capi.rtnl_addr_unset_flags(self._rtnl_addr, i)
else:
elif flag.startswith('+'):
i = capi.rtnl_addr_str2flags(flag[1:])
capi.rtnl_addr_set_flags(self._rtnl_addr, i)
else:
i = capi.rtnl_addr_str2flags(flag)
capi.rtnl_addr_set_flags(self._rtnl_addr, i)
@flags.setter
def flags(self, value):

View File

@ -213,17 +213,27 @@ class Link(netlink.Object):
@netlink.nlattr('link.flags', type=str, fmt=util.string)
@property
def flags(self):
"""Flags"""
"""Flags
Setting this property will *Not* reset flags to value you supply in
Examples:
link.flags = '+xxx' # add xxx flag
link.flags = 'xxx' # exactly the same
link.flags = '-xxx' # remove xxx flag
link.flags = [ '+xxx', '-yyy' ] # list operation
"""
flags = capi.rtnl_link_get_flags(self._rtnl_link)
return capi.rtnl_link_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
if flag[0] == '-':
if flag.startswith('-'):
i = capi.rtnl_link_str2flags(flag[1:])
capi.rtnl_link_unset_flags(self._rtnl_link, i)
else:
elif flag.startswith('+'):
i = capi.rtnl_link_str2flags(flag[1:])
capi.rtnl_link_set_flags(self._rtnl_link, i)
else:
i = capi.rtnl_link_str2flags(flag)
capi.rtnl_link_set_flags(self._rtnl_link, i)
@flags.setter
def flags(self, value):

View File

@ -32,15 +32,26 @@ class VLANLink(object):
@netlink.nlattr('link.vlan.flags', type=str)
@property
def flags(self):
"""vlan flags"""
""" VLAN flags
Setting this property will *Not* reset flags to value you supply in
Examples:
link.flags = '+xxx' # add xxx flag
link.flags = 'xxx' # exactly the same
link.flags = '-xxx' # remove xxx flag
link.flags = [ '+xxx', '-yyy' ] # list operation
"""
flags = capi.rtnl_link_vlan_get_flags(self._link)
return capi.rtnl_link_vlan_flags2str(flags, 256)[0].split(',')
def _set_flag(self, flag):
i = capi.rtnl_link_vlan_str2flags(flag[1:])
if flag[0] == '-':
if flag.startswith('-'):
i = capi.rtnl_link_vlan_str2flags(flag[1:])
capi.rtnl_link_vlan_unset_flags(self._link, i)
elif flag.startswith('+'):
i = capi.rtnl_link_vlan_str2flags(flag[1:])
capi.rtnl_link_vlan_set_flags(self._link, i)
else:
i = capi.rtnl_link_vlan_str2flags(flag)
capi.rtnl_link_vlan_set_flags(self._link, i)
@flags.setter