- dep = calloc(1, sizeof(*dep));
- if (!inet_pton(AF_INET, blobmsg_data(host), &dep->host)) {
- free(dep);
- return UBUS_STATUS_INVALID_ARGUMENT;
+ dep = calloc(1, sizeof(*dep) + ifnamelen);
+ if (inet_pton(AF_INET, blobmsg_data(host), &dep->host) < 1) {
+ if (inet_pton(AF_INET6, blobmsg_data(host), &dep->host) < 1) {
+ free(dep);
+ return UBUS_STATUS_INVALID_ARGUMENT;
+ } else {
+ dep->v6 = true;
+ }