mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
sd-netlink: drop NETLINK_TYPE_META
The NETLINK_TYPE_META pseudo-type is actually equivalent to an empty nested type. Drop it and define an empty type-system instead. This also has the nice side-effect that m->container_type_system[0] is never NULL (which has really nasty side-effects if you try to read attributes).
This commit is contained in:
parent
c1df8dee28
commit
979e7eb9cc
@ -53,6 +53,15 @@ struct NLTypeSystem {
|
||||
|
||||
static const NLTypeSystem rtnl_link_type_system;
|
||||
|
||||
static const NLType empty_types[1] = {
|
||||
/* fake array to avoid .types==NULL, which denotes invalid type-systems */
|
||||
};
|
||||
|
||||
static const NLTypeSystem empty_type_system = {
|
||||
.count = 0,
|
||||
.types = empty_types,
|
||||
};
|
||||
|
||||
static const NLType rtnl_link_info_data_veth_types[VETH_INFO_MAX + 1] = {
|
||||
[VETH_INFO_PEER] = { .type = NETLINK_TYPE_NESTED, .type_system = &rtnl_link_type_system, .size = sizeof(struct ifinfomsg) },
|
||||
};
|
||||
@ -450,8 +459,8 @@ static const NLTypeSystem rtnl_neigh_type_system = {
|
||||
};
|
||||
|
||||
static const NLType rtnl_types[RTM_MAX + 1] = {
|
||||
[NLMSG_DONE] = { .type = NETLINK_TYPE_META, .size = 0 },
|
||||
[NLMSG_ERROR] = { .type = NETLINK_TYPE_META, .size = sizeof(struct nlmsgerr) },
|
||||
[NLMSG_DONE] = { .type = NETLINK_TYPE_NESTED, .type_system = &empty_type_system, .size = 0 },
|
||||
[NLMSG_ERROR] = { .type = NETLINK_TYPE_NESTED, .type_system = &empty_type_system, .size = sizeof(struct nlmsgerr) },
|
||||
[RTM_NEWLINK] = { .type = NETLINK_TYPE_NESTED, .type_system = &rtnl_link_type_system, .size = sizeof(struct ifinfomsg) },
|
||||
[RTM_DELLINK] = { .type = NETLINK_TYPE_NESTED, .type_system = &rtnl_link_type_system, .size = sizeof(struct ifinfomsg) },
|
||||
[RTM_GETLINK] = { .type = NETLINK_TYPE_NESTED, .type_system = &rtnl_link_type_system, .size = sizeof(struct ifinfomsg) },
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
enum {
|
||||
NETLINK_TYPE_UNSPEC,
|
||||
NETLINK_TYPE_META,
|
||||
NETLINK_TYPE_U8, /* NLA_U8 */
|
||||
NETLINK_TYPE_U16, /* NLA_U16 */
|
||||
NETLINK_TYPE_U32, /* NLA_U32 */
|
||||
|
Loading…
Reference in New Issue
Block a user