implement wlc call to read wds endpoint mac

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5121 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2006-10-15 16:56:09 +00:00
parent 1ef87ad52b
commit 1c41869d83
1 changed files with 42 additions and 0 deletions

View File

@ -644,6 +644,36 @@ static int wlc_wme_ac(wlc_param param, void *data, void *value)
return ret; return ret;
} }
static int wlc_ifname(wlc_param param, void *data, void *value)
{
char *val = (char *) value;
int ret = 0;
if (param & SET) {
if (strlen(val) < 16)
strcpy(interface, val);
else ret = -1;
}
if (param & GET) {
strcpy(val, interface);
}
return ret;
}
static int wlc_wdsmac(wlc_param param, void *data, void *value)
{
static struct ether_addr mac;
int ret = 0;
ret = wl_ioctl(interface, WLC_WDS_GET_REMOTE_HWADDR, &mac, 6);
if (ret == 0) {
strcpy((char *) value, ether_ntoa(&mac));
}
return ret;
}
static const struct wlc_call wlc_calls[] = { static const struct wlc_call wlc_calls[] = {
{ {
.name = "version", .name = "version",
@ -666,6 +696,12 @@ static const struct wlc_call wlc_calls[] = {
.data.ptr = &fromstdin, .data.ptr = &fromstdin,
.desc = "Accept input from stdin" .desc = "Accept input from stdin"
}, },
{
.name = "ifname",
.param = STRING,
.handler = wlc_ifname,
.desc = "interface to send commands to"
},
{ {
.name = "up", .name = "up",
.param = NOARG, .param = NOARG,
@ -956,6 +992,12 @@ static const struct wlc_call wlc_calls[] = {
.data.str = "wdstimeout", .data.str = "wdstimeout",
.desc = "WDS link detection timeout" .desc = "WDS link detection timeout"
}, },
{
.name = "wdsmac",
.param = STRING|NOARG,
.handler = wlc_wdsmac,
.desc = "MAC of the remote WDS endpoint (only with wds0.* interfaces)"
},
{ {
.name = "afterburner", .name = "afterburner",
.param = INT, .param = INT,