1 diff -urN madwifi-ng-r2568-20070710/net80211/ieee80211_input.c madwifi-ng-r2568-20070710.new/net80211/ieee80211_input.c
2 --- madwifi-ng-r2568-20070710/net80211/ieee80211_input.c 2007-10-14 12:52:10.000000000 +0200
3 +++ madwifi-ng-r2568-20070710.new/net80211/ieee80211_input.c 2007-10-14 12:57:27.000000000 +0200
11 ieee80211_ssid_mismatch(struct ieee80211vap *vap, const char *tag,
12 u_int8_t mac[IEEE80211_ADDR_LEN], u_int8_t *ssid)
15 ieee80211_print_essid(ssid + 2, ssid[1]);
20 #define IEEE80211_VERIFY_SSID(_ni, _ssid) do { \
21 if ((_ssid)[1] != 0 && \
22 ((_ssid)[1] != (_ni)->ni_esslen || \
25 IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
26 IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN);
27 - IEEE80211_VERIFY_SSID(vap->iv_bss, ssid);
28 + // KARMA: Don't verify SSID on Probe Requests
29 + //IEEE80211_VERIFY_SSID(vap->iv_bss, ssid);
30 if ((vap->iv_flags & IEEE80211_F_HIDESSID) && ssid[1] == 0) {
31 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
32 wh, ieee80211_mgt_subtype_name[subtype >>
33 @@ -3041,6 +3043,12 @@
34 IEEE80211_FC0_SUBTYPE_SHIFT],
35 "%s", "recv'd rate set invalid");
37 + // KARMA: Print the probe response if in adhoc mode
38 + if (vap->iv_opmode == IEEE80211_M_IBSS) {
39 + printf ("KARMA: Probe response for [");
40 + ieee80211_print_essid(ssid + 2, ssid[1]);
43 IEEE80211_SEND_MGMT(ni,
44 IEEE80211_FC0_SUBTYPE_PROBE_RESP, 0);
48 IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
49 IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN);
50 - IEEE80211_VERIFY_SSID(vap->iv_bss, ssid);
51 + // KARMA: Don't verify SSID on Association Requests
52 + //IEEE80211_VERIFY_SSID(vap->iv_bss, ssid);
54 if (ni == vap->iv_bss) {
55 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_ANY, wh->i_addr2,
56 @@ -3408,6 +3417,13 @@
58 /* Send TGf L2UF frame on behalf of newly associated station */
59 ieee80211_deliver_l2uf(ni);
61 + // KARMA: Log SSID that client thinks they are associating to
62 + printf("KARMA: Node [%s] associating to ssid [",
63 + ether_sprintf(wh->i_addr2));
64 + ieee80211_print_essid(ssid + 2, ssid[1]);
67 ieee80211_node_join(ni, resp);
69 if (ni->ni_prev_vap &&
70 diff -urN madwifi-ng-r2568-20070710/net80211/ieee80211_output.c madwifi-ng-r2568-20070710.new/net80211/ieee80211_output.c
71 --- madwifi-ng-r2568-20070710/net80211/ieee80211_output.c 2007-10-14 12:52:10.000000000 +0200
72 +++ madwifi-ng-r2568-20070710.new/net80211/ieee80211_output.c 2007-10-14 12:58:53.000000000 +0200
73 @@ -1876,10 +1876,17 @@
74 *(__le16 *)frm = htole16(capinfo);
78 - frm = ieee80211_add_ssid(frm, vap->iv_bss->ni_essid,
79 - vap->iv_bss->ni_esslen);
81 + // KARMA: If argument is specified, on PROBE_RESP, it is
82 + // the SSID to use in the response which is the same SSID
83 + // has the client sent).
85 + u_int8_t* ssid = (u_int8_t*)arg;
86 + frm = ieee80211_add_ssid(frm, ssid + 2, ssid[1]);
89 + frm = ieee80211_add_ssid(frm, vap->iv_bss->ni_essid,
90 + vap->iv_bss->ni_esslen);
93 frm = ieee80211_add_rates(frm, &ni->ni_rates);