]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[3548] Reordered MAC aquisition methods.
authorTomek Mrugalski <tomasz@isc.org>
Thu, 11 Dec 2014 12:18:35 +0000 (13:18 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Mon, 29 Dec 2014 19:34:57 +0000 (20:34 +0100)
src/lib/dhcp/pkt.cc

index 70a17deb64f4caa3534feb148d1758b5cb6eb8e3..7962bdf5e073acbca91138c913c805de6b03ff97 100755 (executable)
@@ -141,7 +141,19 @@ Pkt::getMAC(uint32_t hw_addr_src) {
         }
     }
 
-    // Method 2: Extracted from DUID-LLT or DUID-LL
+    // Method 2: From client link-layer address option inserted by a relay
+    if (hw_addr_src & HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION) {
+        mac = getMACFromIPv6RelayOpt();
+        if (mac) {
+            return (mac);
+        } else if (hw_addr_src ==  HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION) {
+            // If we're interested only in RFC6939 link layer address as source
+            // of that info, there's no point in trying other options.
+            return (HWAddrPtr());
+        }
+    }
+
+    // Method 3: Extracted from DUID-LLT or DUID-LL
     if(hw_addr_src & HWADDR_SOURCE_DUID) {
         mac = getMACFromDUID();
         if (mac) {
@@ -153,8 +165,8 @@ Pkt::getMAC(uint32_t hw_addr_src) {
         }
     }
 
-    // Method 3: Extracted from source IPv6 link-local address
-    if (hw_addr_src & HWAddr::HWADDR_SOURCE_IPV6_LINK_LOCAL) {
+    // Method 4: Extracted from source IPv6 link-local address
+    if (hw_addr_src & HWaddr::HWADDR_SOURCE_IPV6_LINK_LOCAL) {
         mac = getMACFromSrcLinkLocalAddr();
         if (mac) {
             return (mac);
@@ -165,18 +177,6 @@ Pkt::getMAC(uint32_t hw_addr_src) {
         }
     }
 
-    // Method 4: From client link-layer address option inserted by a relay
-    if (hw_addr_src & HWAddr::HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION) {
-        mac = getMACFromIPv6RelayOpt();
-        if (mac) {
-            return (mac);
-        } else if (hw_addr_src ==  HWAddr::HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION) {
-            // If we're interested only in RFC6939 link layer address as source
-            // of that info, there's no point in trying other options.
-            return (HWAddrPtr());
-        }
-    }
-
     // Method 5: From remote-id option inserted by a relay
 
     // Method 6: From subscriber-id option inserted by a relay