$OpenBSD: patch-lib_src_facts_openbsd_networking_resolver_cc,v 1.3 2016/06/01 07:02:02 jasper Exp $

- From 8ee968b997ab0cd55be4ae071f9d17d6ef0b33a6 Mon Sep 17 00:00:00 2001
  From: Jasper Lievisse Adriaanse <jasper@humppa.nl>
  Date: Mon, 30 May 2016 18:34:50 +0200
  Subject: [PATCH] (MAINT) Unbreak after leatherman split in cc1245ab
- From fbb7625c044091f5de8525e85f714999eb79e81a Mon Sep 17 00:00:00 2001
  From: Jasper Lievisse Adriaanse <jasper@humppa.nl>
  Date: Mon, 30 May 2016 18:56:21 +0200
  Subject: [PATCH] (FACT-1432) Fixup OpenBSD networking facts

--- lib/src/facts/openbsd/networking_resolver.cc.orig	Fri May 20 18:36:55 2016
+++ lib/src/facts/openbsd/networking_resolver.cc	Mon May 30 16:57:25 2016
@@ -1,6 +1,6 @@
 #include <internal/facts/openbsd/networking_resolver.hpp>
 #include <internal/util/bsd/scoped_ifaddrs.hpp>
-#include <facter/execution/execution.hpp>
+#include <leatherman/execution/execution.hpp>
 #include <leatherman/logging/logging.hpp>
 #include <boost/algorithm/string.hpp>
 #include <sys/sockio.h>
@@ -12,13 +12,25 @@
 using namespace std;
 using namespace facter::util;
 using namespace facter::util::bsd;
-using namespace facter::execution;
+using namespace leatherman::execution;
 
 namespace facter { namespace facts { namespace openbsd {
 
     bool networking_resolver::is_link_address(sockaddr const* addr) const
     {
         return addr && addr->sa_family == AF_LINK;
+    }
+
+    uint8_t const* networking_resolver::get_link_address_bytes(sockaddr const* addr) const
+    {
+        if (!is_link_address(addr)) {
+            return nullptr;
+        }
+        sockaddr_dl const* link_addr = reinterpret_cast<sockaddr_dl const*>(addr);
+        if (link_addr->sdl_alen != 6) {
+            return nullptr;
+        }
+        return reinterpret_cast<uint8_t const*>(LLADDR(link_addr));
     }
 
     boost::optional<uint64_t> networking_resolver::get_link_mtu(string const& interface, void* data) const
