|
|
|
@ -644,6 +644,36 @@ static int wlc_wme_ac(wlc_param param, void *data, void *value) |
|
|
|
|
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[] = { |
|
|
|
|
{ |
|
|
|
|
.name = "version", |
|
|
|
@ -666,6 +696,12 @@ static const struct wlc_call wlc_calls[] = { |
|
|
|
|
.data.ptr = &fromstdin, |
|
|
|
|
.desc = "Accept input from stdin" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
.name = "ifname", |
|
|
|
|
.param = STRING, |
|
|
|
|
.handler = wlc_ifname, |
|
|
|
|
.desc = "interface to send commands to" |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
.name = "up", |
|
|
|
|
.param = NOARG, |
|
|
|
@ -956,6 +992,12 @@ static const struct wlc_call wlc_calls[] = { |
|
|
|
|
.data.str = "wdstimeout", |
|
|
|
|
.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", |
|
|
|
|
.param = INT, |
|
|
|
|