X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-fdb.c;h=b6b8327b23fdcff3d0b0743bcd6150883213fc75;hp=9bb45e33d1c8ab386d333b34ade5fe850f0a85ae;hb=2eec67acbb00593e414549a7e5b35eb7dd776b1b;hpb=b98b483bac585af754e8a22ea890db8486905d8a
diff --git a/src/network/networkd-fdb.c b/src/network/networkd-fdb.c
index 9bb45e33d..b6b8327b2 100644
--- a/src/network/networkd-fdb.c
+++ b/src/network/networkd-fdb.c
@@ -19,16 +19,11 @@
along with systemd; If not, see .
***/
-#include
#include
#include
#include "networkd.h"
-#include "networkd-netdev.h"
#include "networkd-link.h"
-#include "network-internal.h"
-#include "path-util.h"
-#include "conf-files.h"
#include "conf-parser.h"
#include "util.h"
@@ -86,31 +81,32 @@ int fdb_entry_new_static(Network *const network,
}
static int set_fdb_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- _cleanup_fdbentry_free_ FdbEntry *fdb_entry = userdata;
+ Link *link = userdata;
int r;
- assert(fdb_entry);
+ assert(link);
r = sd_rtnl_message_get_errno(m);
- if ((r < 0) && (r != (-EEXIST)))
- log_error("Could not add FDB entry for interface: %s error: %s",
- fdb_entry->network->match_name, strerror(-r));
+ if (r < 0 && r != -EEXIST)
+ log_link_error(link, "Could not add FDB entry: %s", strerror(-r));
return 1;
}
/* send a request to the kernel to add a FDB entry in its static MAC table. */
-int fdb_entry_configure(sd_rtnl *const rtnl,
- FdbEntry *const fdb_entry,
- const int ifindex) {
+int fdb_entry_configure(Link *const link, FdbEntry *const fdb_entry) {
_cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
+ sd_rtnl *rtnl;
int r;
+ assert(link);
+ assert(link->manager);
assert(fdb_entry);
- assert(rtnl);
+
+ rtnl = link->manager->rtnl;
/* create new RTM message */
- r = sd_rtnl_message_new_neigh(rtnl, &req, RTM_NEWNEIGH, ifindex, PF_BRIDGE);
+ r = sd_rtnl_message_new_neigh(rtnl, &req, RTM_NEWNEIGH, link->ifindex, PF_BRIDGE);
if (r < 0)
return rtnl_log_create_error(r);
@@ -136,9 +132,9 @@ int fdb_entry_configure(sd_rtnl *const rtnl,
}
/* send message to the kernel to update its internal static MAC table. */
- r = sd_rtnl_call_async(rtnl, req, set_fdb_handler, fdb_entry, 0, NULL);
+ r = sd_rtnl_call_async(rtnl, req, set_fdb_handler, link, 0, NULL);
if (r < 0) {
- log_error("Could not send rtnetlink message: %s", strerror(-r));
+ log_link_error(link, "Could not send rtnetlink message: %s", strerror(-r));
return r;
}