network: use typesafe netlink_call_async() macro where applicable
This commit is contained in:
@@ -9,8 +9,7 @@
|
||||
#include "vlan-util.h"
|
||||
|
||||
/* callback for brige netdev's parameter set */
|
||||
static int netdev_bridge_set_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
NetDev *netdev = userdata;
|
||||
static int netdev_bridge_set_handler(sd_netlink *rtnl, sd_netlink_message *m, NetDev *netdev) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
@@ -129,8 +128,8 @@ static int netdev_bridge_post_create(NetDev *netdev, Link *link, sd_netlink_mess
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_INFO_DATA attribute: %m");
|
||||
|
||||
r = sd_netlink_call_async(netdev->manager->rtnl, NULL, req, netdev_bridge_set_handler,
|
||||
netdev_destroy_callback, netdev, 0, __func__);
|
||||
r = netlink_call_async(netdev->manager->rtnl, NULL, req, netdev_bridge_set_handler,
|
||||
netdev_destroy_callback, netdev);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
|
||||
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
#include <net/if.h>
|
||||
|
||||
#include "sd-netlink.h"
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "conf-parser.h"
|
||||
#include "extract-word.h"
|
||||
#include "geneve.h"
|
||||
#include "netlink-util.h"
|
||||
#include "parse-util.h"
|
||||
#include "sd-netlink.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "missing.h"
|
||||
@@ -17,8 +19,7 @@
|
||||
#define DEFAULT_GENEVE_DESTINATION_PORT 6081
|
||||
|
||||
/* callback for geneve netdev's created without a backing Link */
|
||||
static int geneve_netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
NetDev *netdev = userdata;
|
||||
static int geneve_netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, NetDev *netdev) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
@@ -136,8 +137,8 @@ static int netdev_geneve_create(NetDev *netdev) {
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m");
|
||||
|
||||
r = sd_netlink_call_async(netdev->manager->rtnl, NULL, m, geneve_netdev_create_handler,
|
||||
netdev_destroy_callback, netdev, 0, __func__);
|
||||
r = netlink_call_async(netdev->manager->rtnl, NULL, m, geneve_netdev_create_handler,
|
||||
netdev_destroy_callback, netdev);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
|
||||
|
||||
|
||||
+11
-21
@@ -191,14 +191,6 @@ static NetDev *netdev_free(NetDev *netdev) {
|
||||
|
||||
DEFINE_TRIVIAL_REF_UNREF_FUNC(NetDev, netdev, netdev_free);
|
||||
|
||||
void netdev_destroy_callback(void *userdata) {
|
||||
NetDev *netdev = userdata;
|
||||
|
||||
assert(userdata);
|
||||
|
||||
netdev_unref(netdev);
|
||||
}
|
||||
|
||||
void netdev_drop(NetDev *netdev) {
|
||||
if (!netdev || netdev->state == NETDEV_STATE_LINGER)
|
||||
return;
|
||||
@@ -242,7 +234,7 @@ static int netdev_enter_failed(NetDev *netdev) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_netlink_message_handler_t callback) {
|
||||
static int netdev_enslave_ready(NetDev *netdev, Link* link, link_netlink_message_handler_t callback) {
|
||||
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL;
|
||||
int r;
|
||||
|
||||
@@ -269,8 +261,8 @@ static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_netlink_message_h
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_MASTER attribute: %m");
|
||||
|
||||
r = sd_netlink_call_async(netdev->manager->rtnl, NULL, req, callback,
|
||||
link_netlink_destroy_callback, link, 0, __func__);
|
||||
r = netlink_call_async(netdev->manager->rtnl, NULL, req, callback,
|
||||
link_netlink_destroy_callback, link);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
|
||||
|
||||
@@ -314,8 +306,7 @@ static int netdev_enter_ready(NetDev *netdev) {
|
||||
}
|
||||
|
||||
/* callback for netdev's created without a backing Link */
|
||||
static int netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
NetDev *netdev = userdata;
|
||||
static int netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, NetDev *netdev) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
@@ -336,7 +327,7 @@ static int netdev_create_handler(sd_netlink *rtnl, sd_netlink_message *m, void *
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int netdev_enslave(NetDev *netdev, Link *link, sd_netlink_message_handler_t callback) {
|
||||
static int netdev_enslave(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
@@ -512,8 +503,7 @@ int netdev_get_mac(const char *ifname, struct ether_addr **ret) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int netdev_create(NetDev *netdev, Link *link,
|
||||
sd_netlink_message_handler_t callback) {
|
||||
static int netdev_create(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
@@ -580,15 +570,15 @@ static int netdev_create(NetDev *netdev, Link *link,
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_LINKINFO attribute: %m");
|
||||
|
||||
if (link) {
|
||||
r = sd_netlink_call_async(netdev->manager->rtnl, NULL, m, callback,
|
||||
link_netlink_destroy_callback, link, 0, __func__);
|
||||
r = netlink_call_async(netdev->manager->rtnl, NULL, m, callback,
|
||||
link_netlink_destroy_callback, link);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
|
||||
|
||||
link_ref(link);
|
||||
} else {
|
||||
r = sd_netlink_call_async(netdev->manager->rtnl, NULL, m, netdev_create_handler,
|
||||
netdev_destroy_callback, netdev, 0, __func__);
|
||||
r = netlink_call_async(netdev->manager->rtnl, NULL, m, netdev_create_handler,
|
||||
netdev_destroy_callback, netdev);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m");
|
||||
|
||||
@@ -604,7 +594,7 @@ static int netdev_create(NetDev *netdev, Link *link,
|
||||
}
|
||||
|
||||
/* the callback must be called, possibly after a timeout, as otherwise the Link will hang */
|
||||
int netdev_join(NetDev *netdev, Link *link, sd_netlink_message_handler_t callback) {
|
||||
int netdev_join(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) {
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
#include "conf-parser.h"
|
||||
#include "list.h"
|
||||
#include "../networkd-link.h"
|
||||
#include "time-util.h"
|
||||
|
||||
typedef struct netdev_join_callback netdev_join_callback;
|
||||
typedef struct Link Link;
|
||||
|
||||
struct netdev_join_callback {
|
||||
sd_netlink_message_handler_t callback;
|
||||
link_netlink_message_handler_t callback;
|
||||
Link *link;
|
||||
|
||||
LIST_FIELDS(netdev_join_callback, callbacks);
|
||||
@@ -153,13 +153,13 @@ void netdev_drop(NetDev *netdev);
|
||||
|
||||
NetDev *netdev_unref(NetDev *netdev);
|
||||
NetDev *netdev_ref(NetDev *netdev);
|
||||
void netdev_destroy_callback(void *userdata);
|
||||
DEFINE_TRIVIAL_DESTRUCTOR(netdev_destroy_callback, NetDev, netdev_unref);
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(NetDev*, netdev_unref);
|
||||
|
||||
int netdev_get(Manager *manager, const char *name, NetDev **ret);
|
||||
int netdev_set_ifindex(NetDev *netdev, sd_netlink_message *newlink);
|
||||
int netdev_get_mac(const char *ifname, struct ether_addr **ret);
|
||||
int netdev_join(NetDev *netdev, Link *link, sd_netlink_message_handler_t cb);
|
||||
int netdev_join(NetDev *netdev, Link *link, link_netlink_message_handler_t cb);
|
||||
|
||||
const char *netdev_kind_to_string(NetDevKind d) _const_;
|
||||
NetDevKind netdev_kind_from_string(const char *d) _pure_;
|
||||
|
||||
@@ -300,7 +300,7 @@ static int wireguard_resolve_handler(sd_resolve_query *q,
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = sd_event_source_set_destroy_callback(s, netdev_destroy_callback);
|
||||
r = sd_event_source_set_destroy_callback(s, (sd_event_destroy_t) netdev_destroy_callback);
|
||||
if (r < 0) {
|
||||
log_netdev_warning_errno(netdev, r, "Failed to set destroy callback to event source: %m");
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user