diff options
author | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-05-09 11:18:57 +1000 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-07-10 14:42:56 +1000 |
commit | f5fb1751ec92110669a039bb0de209bffe74538a (patch) | |
tree | 9862dd312e22e8a4214736eeedc5c047afdc2c5a /discover/user-event.c | |
parent | 02a66447edbc43e6baf4c1a1221a251b5f2536b8 (diff) | |
download | talos-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.c | 12 |
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); |