Skip to content

Commit e331889

Browse files
committed
network: bareudp: use fill_message_create
1 parent 8e30e5f commit e331889

File tree

1 file changed

+4
-60
lines changed

1 file changed

+4
-60
lines changed

src/network/netdev/bareudp.c

Lines changed: 4 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -17,55 +17,17 @@ DEFINE_STRING_TABLE_LOOKUP(bare_udp_protocol, BareUDPProtocol);
1717
DEFINE_CONFIG_PARSE_ENUM(config_parse_bare_udp_iftype, bare_udp_protocol, BareUDPProtocol,
1818
"Failed to parse EtherType=");
1919

20-
/* callback for bareudp netdev's created without a backing Link */
21-
static int bare_udp_netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, NetDev *netdev) {
22-
int r;
23-
24-
assert(netdev);
25-
assert(netdev->state != _NETDEV_STATE_INVALID);
26-
27-
r = sd_netlink_message_get_errno(m);
28-
if (r == -EEXIST)
29-
log_netdev_info(netdev, "BareUDP netdev exists, using existing without changing its parameters.");
30-
else if (r < 0) {
31-
log_netdev_warning_errno(netdev, r, "BareUDP netdev could not be created: %m");
32-
netdev_enter_failed(netdev);
33-
34-
return 1;
35-
}
36-
37-
log_netdev_debug(netdev, "BareUDP created.");
38-
39-
return 1;
40-
}
41-
42-
static int netdev_bare_udp_create(NetDev *netdev) {
43-
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
20+
static int netdev_bare_udp_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
4421
BareUDP *u;
4522
int r;
4623

4724
assert(netdev);
25+
assert(m);
4826

4927
u = BAREUDP(netdev);
5028

5129
assert(u);
5230

53-
r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
54-
if (r < 0)
55-
return log_netdev_error_errno(netdev, r, "Could not allocate RTM_NEWLINK message: %m");
56-
57-
r = sd_netlink_message_append_string(m, IFLA_IFNAME, netdev->ifname);
58-
if (r < 0)
59-
return log_netdev_error_errno(netdev, r, "Could not append IFLA_IFNAME, attribute: %m");
60-
61-
r = sd_netlink_message_open_container(m, IFLA_LINKINFO);
62-
if (r < 0)
63-
return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m");
64-
65-
r = sd_netlink_message_open_container_union(m, IFLA_INFO_DATA, netdev_kind_to_string(netdev->kind));
66-
if (r < 0)
67-
return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m");
68-
6931
r = sd_netlink_message_append_u16(m, IFLA_BAREUDP_ETHERTYPE, htobe16(u->iftype));
7032
if (r < 0)
7133
return log_netdev_error_errno(netdev, r, "Could not append IFLA_BAREUDP_ETHERTYPE attribute: %m");
@@ -74,25 +36,7 @@ static int netdev_bare_udp_create(NetDev *netdev) {
7436
if (r < 0)
7537
return log_netdev_error_errno(netdev, r, "Could not append IFLA_BAREUDP_PORT attribute: %m");
7638

77-
r = sd_netlink_message_close_container(m);
78-
if (r < 0)
79-
return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m");
80-
81-
r = sd_netlink_message_close_container(m);
82-
if (r < 0)
83-
return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m");
84-
85-
r = netlink_call_async(netdev->manager->rtnl, NULL, m, bare_udp_netdev_create_handler,
86-
netdev_destroy_callback, netdev);
87-
if (r < 0)
88-
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
89-
90-
netdev_ref(netdev);
91-
netdev->state = NETDEV_STATE_CREATING;
92-
93-
log_netdev_debug(netdev, "Creating");
94-
95-
return r;
39+
return 0;
9640
}
9741

9842
static int netdev_bare_udp_verify(NetDev *netdev, const char *filename) {
@@ -133,6 +77,6 @@ const NetDevVTable bare_udp_vtable = {
13377
.sections = NETDEV_COMMON_SECTIONS "BareUDP\0",
13478
.init = bare_udp_init,
13579
.config_verify = netdev_bare_udp_verify,
136-
.create = netdev_bare_udp_create,
80+
.fill_message_create = netdev_bare_udp_fill_message_create,
13781
.create_type = NETDEV_CREATE_INDEPENDENT,
13882
};

0 commit comments

Comments
 (0)