X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fswconfig%2Fsrc%2Fswlib.c;fp=package%2Fswconfig%2Fsrc%2Fswlib.c;h=531a23a1ab00f68a7827c40682f72120a159641a;hb=eaa935658b7ec77bfd8b99b557ad196425b620f4;hp=20e727eb5371c88bcf0c5d80c3eadc4cd98cf9f5;hpb=8ff7756e829dde4fcf69eeb9cca673cc7c7bd945;p=openwrt%2Fstaging%2Fflorian.git diff --git a/package/swconfig/src/swlib.c b/package/swconfig/src/swlib.c index 20e727eb53..531a23a1ab 100644 --- a/package/swconfig/src/swlib.c +++ b/package/swconfig/src/swlib.c @@ -580,6 +580,7 @@ add_switch(struct nl_msg *msg, void *arg) struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); struct switch_dev *dev; const char *name; + const char *alias; if (nla_parse(tb, SWITCH_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL) < 0) goto done; @@ -588,14 +589,17 @@ add_switch(struct nl_msg *msg, void *arg) goto done; name = nla_get_string(tb[SWITCH_ATTR_DEV_NAME]); - if (sa->name && (strcmp(name, sa->name) != 0)) + alias = nla_get_string(tb[SWITCH_ATTR_ALIAS]); + + if (sa->name && (strcmp(name, sa->name) != 0) && (strcmp(alias, sa->name) != 0)) goto done; dev = swlib_alloc(sizeof(struct switch_dev)); if (!dev) goto done; - dev->dev_name = strdup(name); + strncpy(dev->dev_name, name, IFNAMSIZ - 1); + dev->alias = strdup(alias); if (tb[SWITCH_ATTR_ID]) dev->id = nla_get_u32(tb[SWITCH_ATTR_ID]); if (tb[SWITCH_ATTR_NAME])