wired: Default to using PAE group address for transmission

This commit is contained in:
Marcel Holtmann 2018-10-14 05:34:01 +02:00
parent 15a19330da
commit 60a74c46a0
1 changed files with 6 additions and 1 deletions

View File

@ -65,6 +65,7 @@ struct ethdev {
struct eapol {
struct ethdev *dev;
uint8_t addr[ETH_ALEN];
bool use_group_addr;
struct eap_state *eap;
struct l_settings *cred;
};
@ -153,7 +154,10 @@ static void eap_tx_packet(const uint8_t *eap_data, size_t len, void *user_data)
l_put_be16(len, frame + 2);
memcpy(frame + 4, eap_data, len);
pae_write(eapol->dev, eapol->addr, frame, len + 4);
if (eapol->use_group_addr)
pae_write(eapol->dev, pae_group_addr, frame, len + 4);
else
pae_write(eapol->dev, eapol->addr, frame, len + 4);
}
static void eap_complete(enum eap_result result, void *user_data)
@ -199,6 +203,7 @@ static void rx_packet(struct ethdev *dev, const uint8_t *addr,
eapol = l_new(struct eapol, 1);
eapol->dev = dev;
memcpy(eapol->addr, addr, ETH_ALEN);
eapol->use_group_addr = true;
eapol->eap = eap_new(eap_tx_packet,
eap_complete, eapol);
if (!eapol->eap) {