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
|
||||
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");
|
||||
exit(1);
|
||||
}
|
||||
|
@ -214,6 +215,11 @@ int main(int argc, char **argv)
|
|||
char *ckey = NULL;
|
||||
char *cvalue = NULL;
|
||||
|
||||
if((argc == 2) && !strcmp(argv[1], "list")) {
|
||||
swlib_list();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(argc < 4)
|
||||
print_usage();
|
||||
|
||||
|
|
|
@ -624,6 +624,36 @@ done:
|
|||
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 *
|
||||
swlib_connect(const char *name)
|
||||
|
|
|
@ -154,6 +154,11 @@ struct switch_port {
|
|||
unsigned int flags;
|
||||
};
|
||||
|
||||
/**
|
||||
* swlib_list: list all switches
|
||||
*/
|
||||
void swlib_list(void);
|
||||
|
||||
/**
|
||||
* swlib_connect: connect to the switch through netlink
|
||||
* @name: name of the ethernet interface,
|
||||
|
|
Loading…
Reference in New Issue