From c6e052c78f16403a72c0a1f802e654eccdb8f8e5 Mon Sep 17 00:00:00 2001 From: Leo Antunes Date: Mon, 29 Jul 2019 19:20:25 +0200 Subject: [PATCH] add missing error-catching refs #5 --- wireguard.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/wireguard.go b/wireguard.go index 7556b61..d14e334 100644 --- a/wireguard.go +++ b/wireguard.go @@ -85,22 +85,31 @@ func (wg *wgState) setUpInterface(nodes []node) error { if err != nil { return errors.Wrap(err, "error converting received node information to wireguard format") } - wg.client.ConfigureDevice(wg.iface, wgtypes.Config{ + if err := wg.client.ConfigureDevice(wg.iface, wgtypes.Config{ PrivateKey: &wg.PrivKey, ListenPort: &wg.Port, ReplacePeers: true, Peers: peerCfgs, - }) + }); err != nil { + return errors.Wrapf(err, "could not set wireguard configuration for %s", wg.iface) + } link, err := netlink.LinkByName(wg.iface) if err != nil { return errors.Wrapf(err, "could not get link information for %s", wg.iface) } - netlink.AddrReplace(link, &netlink.Addr{ + if err := netlink.AddrReplace(link, &netlink.Addr{ IPNet: &wg.OverlayAddr, - }) - netlink.LinkSetMTU(link, 1420) // TODO: make MTU configurable? - netlink.LinkSetUp(link) + }); err != nil { + return errors.Wrapf(err, "could not set address for %s", wg.iface) + } + // TODO: make MTU configurable? + if err := netlink.LinkSetMTU(link, 1420); err != nil { + return errors.Wrapf(err, "could not set MTU for %s", wg.iface) + } + if err := netlink.LinkSetUp(link); err != nil { + return errors.Wrapf(err, "could not enable interface %s", wg.iface) + } for _, node := range nodes { netlink.RouteAdd(&netlink.Route{ LinkIndex: link.Attrs().Index,