Get MAC of TAP device.
[tinc] / src / linux / device.c
index b4360a6..8d042d2 100644 (file)
@@ -1,7 +1,7 @@
 /*
     device.c -- Interaction with Linux ethertap and tun/tap device
     Copyright (C) 2001-2005 Ivo Timmermans,
-                  2001-2013 Guus Sliepen <guus@tinc-vpn.org>
+                  2001-2014 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -134,6 +134,9 @@ static bool setup_device(void) {
                iface = xstrdup(strrchr(device, '/') ? strrchr(device, '/') + 1 : device);
        }
 
+       if(overwrite_mac && !ioctl(device_fd, SIOCGIFHWADDR, &ifr))
+               memcpy(mymac.x, ifr.ifr_hwaddr.sa_data, ETH_ALEN);
+
        logger(LOG_INFO, "%s is a %s", device, device_info);
 
        return true;