projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[package] libpcap: explicitely disable libnl support to prevent different build resul...
[openwrt.git]
/
package
/
swconfig
/
src
/
swlib.c
diff --git
a/package/swconfig/src/swlib.c
b/package/swconfig/src/swlib.c
index
c2316d0
..
de08717
100644
(file)
--- a/
package/swconfig/src/swlib.c
+++ b/
package/swconfig/src/swlib.c
@@
-38,7
+38,7
@@
static struct nl_sock *handle;
static struct nl_cache *cache;
static struct genl_family *family;
static struct nl_sock *handle;
static struct nl_cache *cache;
static struct genl_family *family;
-static struct nlattr *tb[SWITCH_ATTR_MAX];
+static struct nlattr *tb[SWITCH_ATTR_MAX
+ 1
];
static int refcount = 0;
static struct nla_policy port_policy[] = {
static int refcount = 0;
static struct nla_policy port_policy[] = {
@@
-397,6
+397,9
@@
int swlib_set_attr_string(struct switch_dev *dev, struct switch_attr *a, int por
val.value.ports = ports;
break;
case SWITCH_TYPE_NOVAL:
val.value.ports = ports;
break;
case SWITCH_TYPE_NOVAL:
+ if (str && !strcmp(str, "0"))
+ return 0;
+
break;
default:
return -1;
break;
default:
return -1;
@@
-577,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;
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;
if (nla_parse(tb, SWITCH_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL) < 0)
goto done;
@@
-585,14
+589,17
@@
add_switch(struct nl_msg *msg, void *arg)
goto done;
name = nla_get_string(tb[SWITCH_ATTR_DEV_NAME]);
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;
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])
if (tb[SWITCH_ATTR_ID])
dev->id = nla_get_u32(tb[SWITCH_ATTR_ID]);
if (tb[SWITCH_ATTR_NAME])
This page took
0.025239 seconds
and
4
git commands to generate.