]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/Tools.pm
half-revert: remove autostart property from bridge ports
[pve-common.git] / src / PVE / Tools.pm
index 3f3958e0e354f4f5f4cbe6fea92028fdd58f6e19..32f36ac2d6ac9a2fa9fa5cd9ce6bb21bd60ef422 100644 (file)
@@ -940,23 +940,10 @@ sub random_ether_addr {
 
     my $rand = Digest::SHA::sha1_hex($$, rand(), $seconds, $microseconds);
 
-    my $mac = '';
-    for (my $i = 0; $i < 6; $i++) {
-       my $ss = hex(substr($rand, $i*2, 2));
-       if (!$i) {
-           $ss &= 0xfe; # clear multicast
-           $ss |= 2; # set local id
-       }
-       $ss = sprintf("%02X", $ss);
-
-       if (!$i) {
-           $mac .= "$ss";
-       } else {
-           $mac .= ":$ss";
-       }
-    }
+    # clear multicast, set local id
+    vec($rand, 0, 8) = (vec($rand, 0, 8) & 0xfe) | 2;
 
-    return $mac;
+    return sprintf("%02X:%02X:%02X:%02X:%02X:%02X", unpack("C6", $rand));
 }
 
 sub shellquote {