Пример #1
0
Файл: ctrl.py Проект: 0x90/libnl
def genl_ctrl_grp_by_name(family, grp_name):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/ctrl.c#L446.

    Positional arguments:
    family -- genl_family class instance.
    grp_name -- bytes.

    Returns:
    group ID or negative error code.
    """
    for grp in nl_list_for_each_entry(genl_family_grp(), family.gf_mc_grps, 'list_'):
        if grp.name == grp_name:
            return grp.id_
    return -NLE_OBJ_NOTFOUND
Пример #2
0
def genl_family_add_grp(family, id_, name):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L366.

    Positional arguments:
    family -- Generic Netlink family object (genl_family class instance).
    id_ -- new numeric identifier (integer).
    name -- new human readable name (string).

    Returns:
    0
    """
    grp = genl_family_grp(id_=id_, name=name)
    nl_list_add_tail(grp.list_, family.gf_mc_grps)
    return 0
Пример #3
0
def genl_family_add_grp(family, id_, name):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L366.

    Positional arguments:
    family -- Generic Netlink family object (genl_family class instance).
    id_ -- new numeric identifier (integer).
    name -- new human readable name (string).

    Returns:
    0
    """
    grp = genl_family_grp(id_=id_, name=name)
    nl_list_add_tail(grp.list_, family.gf_mc_grps)
    return 0
Пример #4
0
def genl_ctrl_grp_by_name(family, grp_name):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/ctrl.c#L446.

    Positional arguments:
    family -- genl_family class instance.
    grp_name -- bytes.

    Returns:
    group ID or negative error code.
    """
    for grp in nl_list_for_each_entry(genl_family_grp(), family.gf_mc_grps,
                                      'list_'):
        if grp.name == grp_name:
            return grp.id_
    return -NLE_OBJ_NOTFOUND
Пример #5
0
def family_free_data(c):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L45.

    Positional arguments:
    c -- nl_object-derived class instance.
    """
    family = c
    if not hasattr(family, 'gf_ops'):
        setattr(family, 'gf_ops', nl_list_head(container_of=family))
    if not hasattr(family, 'gf_mc_grps'):
        setattr(family, 'gf_mc_grps', nl_list_head(container_of=family))
    ops = tmp = genl_family_op()
    grp = t_grp = genl_family_grp()
    if family is None:
        return
    for ops in nl_list_for_each_entry_safe(ops, tmp, family.gf_ops, 'o_list'):
        nl_list_del(ops.o_list)
    for grp in nl_list_for_each_entry_safe(grp, t_grp, family.gf_mc_grps, 'list_'):
        nl_list_del(grp.list_)
Пример #6
0
def family_free_data(c):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L45.

    Positional arguments:
    c -- nl_object-derived class instance.
    """
    family = c
    if not hasattr(family, 'gf_ops'):
        setattr(family, 'gf_ops', nl_list_head(container_of=family))
    if not hasattr(family, 'gf_mc_grps'):
        setattr(family, 'gf_mc_grps', nl_list_head(container_of=family))
    ops = tmp = genl_family_op()
    grp = t_grp = genl_family_grp()
    if family is None:
        return
    for ops in nl_list_for_each_entry_safe(ops, tmp, family.gf_ops, 'o_list'):
        nl_list_del(ops.o_list)
    for grp in nl_list_for_each_entry_safe(grp, t_grp, family.gf_mc_grps,
                                           'list_'):
        nl_list_del(grp.list_)