mirror of https://github.com/hak5/openwrt.git
add "swconfig list" support
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36282lede-17.01
parent
f90f025f20
commit
f13ae9965c
|
@ -167,6 +167,7 @@ show_vlan(struct switch_dev *dev, int vlan, bool all)
|
||||||
static void
|
static void
|
||||||
print_usage(void)
|
print_usage(void)
|
||||||
{
|
{
|
||||||
|
printf("swconfig list\n");
|
||||||
printf("swconfig dev <dev> [port <port>|vlan <vlan>] (help|set <key> <value>|get <key>|load <config>|show)\n");
|
printf("swconfig dev <dev> [port <port>|vlan <vlan>] (help|set <key> <value>|get <key>|load <config>|show)\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -214,6 +215,11 @@ int main(int argc, char **argv)
|
||||||
char *ckey = NULL;
|
char *ckey = NULL;
|
||||||
char *cvalue = NULL;
|
char *cvalue = NULL;
|
||||||
|
|
||||||
|
if((argc == 2) && !strcmp(argv[1], "list")) {
|
||||||
|
swlib_list();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if(argc < 4)
|
if(argc < 4)
|
||||||
print_usage();
|
print_usage();
|
||||||
|
|
||||||
|
|
|
@ -624,6 +624,36 @@ done:
|
||||||
return NL_SKIP;
|
return NL_SKIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
list_switch(struct nl_msg *msg, void *arg)
|
||||||
|
{
|
||||||
|
struct swlib_scan_arg *sa = 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;
|
||||||
|
|
||||||
|
if (!tb[SWITCH_ATTR_DEV_NAME] || !tb[SWITCH_ATTR_NAME])
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
printf("Found: %s - %s\n", nla_get_string(tb[SWITCH_ATTR_DEV_NAME]),
|
||||||
|
nla_get_string(tb[SWITCH_ATTR_ALIAS]));
|
||||||
|
|
||||||
|
done:
|
||||||
|
return NL_SKIP;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
swlib_list(void)
|
||||||
|
{
|
||||||
|
if (swlib_priv_init() < 0)
|
||||||
|
return;
|
||||||
|
swlib_call(SWITCH_CMD_GET_SWITCH, list_switch, NULL, NULL);
|
||||||
|
swlib_priv_free();
|
||||||
|
}
|
||||||
|
|
||||||
struct switch_dev *
|
struct switch_dev *
|
||||||
swlib_connect(const char *name)
|
swlib_connect(const char *name)
|
||||||
|
|
|
@ -154,6 +154,11 @@ struct switch_port {
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* swlib_list: list all switches
|
||||||
|
*/
|
||||||
|
void swlib_list(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* swlib_connect: connect to the switch through netlink
|
* swlib_connect: connect to the switch through netlink
|
||||||
* @name: name of the ethernet interface,
|
* @name: name of the ethernet interface,
|
||||||
|
|
Loading…
Reference in New Issue