Page MenuHomeFreeBSD

D36242.diff
No OneTemporary

D36242.diff

diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c
--- a/sbin/ifconfig/ifieee80211.c
+++ b/sbin/ifconfig/ifieee80211.c
@@ -874,6 +874,31 @@
set80211(s, IEEE80211_IOC_AUTHMODE, mode, 0, NULL);
}
+static
+DECL_CMD_FUNC(set80211assoc, val, d)
+{
+ char *temp;
+ struct sockaddr_dl sdl;
+ struct ieee80211req_mlme mlme;
+
+ temp = malloc(strlen(val) + 2); /* ':' and '\0' */
+ if (temp == NULL)
+ errx(1, "malloc failed");
+ temp[0] = ':';
+ strcpy(temp + 1, val);
+ sdl.sdl_len = sizeof(sdl);
+ link_addr(temp, &sdl);
+ free(temp);
+ if (sdl.sdl_alen != IEEE80211_ADDR_LEN)
+ errx(1, "malformed link-level address");
+
+ mlme.im_op = IEEE80211_MLME_ASSOC;
+ memcpy(mlme.im_macaddr, LLADDR(&sdl), IEEE80211_ADDR_LEN);
+
+ set80211(s, IEEE80211_IOC_MLME, 0,
+ sizeof(mlme), &mlme);
+}
+
static void
set80211powersavemode(const char *val, int d, int s, const struct afswtch *rafp)
{
@@ -5862,6 +5887,7 @@
DEF_CMD_ARG("station", set80211stationname), /* BSD/OS */
DEF_CMD_ARG("channel", set80211channel),
DEF_CMD_ARG("authmode", set80211authmode),
+ DEF_CMD_ARG("assoc", set80211assoc),
DEF_CMD_ARG("powersavemode", set80211powersavemode),
DEF_CMD("powersave", 1, set80211powersave),
DEF_CMD("-powersave", 0, set80211powersave),

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 28, 12:03 PM (2 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17829781
Default Alt Text
D36242.diff (1 KB)

Event Timeline