summaryrefslogtreecommitdiffstats
path: root/discover/user-event.c
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-05-09 11:18:57 +1000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-07-10 14:42:56 +1000
commitf5fb1751ec92110669a039bb0de209bffe74538a (patch)
tree9862dd312e22e8a4214736eeedc5c047afdc2c5a /discover/user-event.c
parent02a66447edbc43e6baf4c1a1221a251b5f2536b8 (diff)
downloadtalos-petitboot-f5fb1751ec92110669a039bb0de209bffe74538a.tar.gz
talos-petitboot-f5fb1751ec92110669a039bb0de209bffe74538a.zip
discover: Support IPv6 addresses
Support handling IPv6 addresses from user events and call the udhcpc6 client in addition to the udhcpc client. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/user-event.c')
-rw-r--r--discover/user-event.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/discover/user-event.c b/discover/user-event.c
index 7f63d43..ee282bb 100644
--- a/discover/user-event.c
+++ b/discover/user-event.c
@@ -390,7 +390,9 @@ static int user_event_dhcp(struct user_event *uev, struct event *event)
uint8_t hwaddr[MAC_ADDR_SIZE];
- if (!event_get_param(event, "mac") || !event_get_param(event, "ip"))
+ if (!event_get_param(event, "mac"))
+ return -1;
+ if (!event_get_param(event, "ip") && !event_get_param(event, "ipv6"))
return -1;
sscanf(event_get_param(event, "mac"),
@@ -398,8 +400,12 @@ static int user_event_dhcp(struct user_event *uev, struct event *event)
hwaddr, hwaddr + 1, hwaddr + 2,
hwaddr + 3, hwaddr + 4, hwaddr + 5);
- system_info_set_interface_address(sizeof(hwaddr), hwaddr,
- event_get_param(event, "ip"));
+ if (event_get_param(event, "ipv6"))
+ system_info_set_interface_address(sizeof(hwaddr), hwaddr,
+ event_get_param(event, "ipv6"));
+ else
+ 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