summaryrefslogtreecommitdiffstats
path: root/discover/user-event.c
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-19 15:56:49 +1100
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-20 16:40:22 +1100
commit0d3caaf8e9a75e9b6ebc9427c75ed2914c60439d (patch)
tree02b8930345eea0a0e0c11673ffac1cfe22495afc /discover/user-event.c
parentf901ce58f58ad4f7d769140fe98426e5ac9f7759 (diff)
downloadtalos-petitboot-0d3caaf8e9a75e9b6ebc9427c75ed2914c60439d.tar.gz
talos-petitboot-0d3caaf8e9a75e9b6ebc9427c75ed2914c60439d.zip
discover: Record IP address of network interfaces
If an interface has a valid IP address (either via DHCP or static config) store it in the interface_info struct so it can be referenced later. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/user-event.c')
-rw-r--r--discover/user-event.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/discover/user-event.c b/discover/user-event.c
index 20b2bea..fb3fddb 100644
--- a/discover/user-event.c
+++ b/discover/user-event.c
@@ -37,6 +37,7 @@
#include "resource.h"
#include "event.h"
#include "user-event.h"
+#include "sysinfo.h"
#define MAC_ADDR_SIZE 6
@@ -385,6 +386,16 @@ static int user_event_dhcp(struct user_event *uev, struct event *event)
struct device_handler *handler = uev->handler;
struct discover_device *dev;
+ uint8_t hwaddr[MAC_ADDR_SIZE];
+
+ sscanf(event_get_param(event, "mac"),
+ "%hhX:%hhX:%hhX:%hhX:%hhX:%hhX",
+ hwaddr, hwaddr + 1, hwaddr + 2,
+ hwaddr + 3, hwaddr + 4, hwaddr + 5);
+
+ system_info_set_interface_address(sizeof(hwaddr), hwaddr,
+ event_get_param(event, "ip"));
+
dev = discover_device_create(handler, event_get_param(event, "mac"),
event->device);
OpenPOWER on IntegriCloud