From: Denis Kenzior <denkenz@gmail.com>
To: iwd@lists.01.org
Subject: Re: [PATCH 04/11] eapol: Move the EAP event handler to handshake state
Date: Tue, 22 Oct 2019 09:34:47 -0500 [thread overview]
Message-ID: <d0bfc5b8-7880-7bb5-1a1c-bc671918de76@gmail.com> (raw)
In-Reply-To: <CAOq732LBGVjOPiArgWd-bKa_eh0x5kHm3V1Sv3fOYxzve3aG3A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2387 bytes --]
Hi Andrew,
On 10/22/19 9:00 AM, Andrew Zaborowski wrote:
> Hi Denis,
>
> On Tue, 22 Oct 2019 at 06:11, Denis Kenzior <denkenz@gmail.com> wrote:
>> On 10/21/19 8:55 AM, Andrew Zaborowski wrote:
>>> Move the storage of the eapol event callback from the eapol_sm struct to
>>> the handshake_state struct. Rename from eapol event to eap event as the
>>> callback is only used to relay eap-specific event in eapol.c.
>>
>> Hmm, I'd be tempted to use handshake_state_set_event_func() for this as
>> well. Especially given that wsc.c already subscribes to handshake
>> events. Only problem is getting the eap event type and data to the
>> event func. I wonder if variadic functions work through pointers...
>
> I think they should and this may be the best option. So I guess we
> would want handshake_event_func_t to take:
>
> struct handshake_state *hs,
> enum handshake_event event,
> void *user_data,
> ...
>
> while event_data and the eap event subtype would already be part of the "...".
That is what I'm thinking. Or make event_data part of the argument list
and any 'extra' arguments are part of the variadic argument array. That
way existing callers don't have to worry about invoking va_arg, etc.
>
> The uglier option would be to reserve a range of enum handshake_event
> values for eap events.
I considered that, but this seems less elegant.
>
>>
>>>
>>> This is allows the handler to be set before calling
>>> netdev_connect/netdev_connect_wsc. It's also in theory more type-safe
>>> because don't need the cast in netdev_connect_wsc anymore.
>>>
>>> Note that eapol_sm_set_user_data is now unused. I'm not sure if it
>>> should be removed on its own, the user_data that it sets will also
>>> affect rekey_offload callbacks. However rekey_offload's user_data
>>> parameter is not used by the only implementation of that callback, so
>>> both could be removed together.
>>
>> I'd imagine they can be reworked to act like netdev_set_tk, etc.
>
> Or those could be reworked to take the user_data so we don't have to
> look up by ifindex.
Well, we can't since user_data is used by wsc/station to observe
handshake events.
And set_tk and friends don't look up by ifindex any more. They get
passed in the handshake_state as the first argument.
>
> Best regards
>
Regards,
-Denis
next prev parent reply other threads:[~2019-10-22 14:34 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-21 13:55 [PATCH 01/11] netdev: Add a wdev_id based frame watch API Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 02/11] netdev: Report RSSI to frame watch callbacks Andrew Zaborowski
2019-10-22 3:34 ` Denis Kenzior
2019-10-22 13:46 ` Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 03/11] netdev: Extend checks for P2P scenarios Andrew Zaborowski
2019-10-22 3:36 ` Denis Kenzior
2019-10-21 13:55 ` [PATCH 04/11] eapol: Move the EAP event handler to handshake state Andrew Zaborowski
2019-10-22 4:11 ` Denis Kenzior
2019-10-22 14:00 ` Andrew Zaborowski
2019-10-22 14:34 ` Denis Kenzior [this message]
2019-10-21 13:55 ` [PATCH 05/11] unit: Update test-wsc to use handshake_state_set_eap_event_func Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 06/11] wsc: Replace netdev_connect_wsc with netdev_connect usage Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 07/11] netdev: Drop unused netdev_connect_wsc Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 08/11] wsc: Add wsc_new_p2p_enrollee, refactor Andrew Zaborowski
2019-10-22 14:47 ` Denis Kenzior
2019-10-22 23:46 ` Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 09/11] wsc: Accept extra IEs in wsc_new_p2p_enrollee Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 10/11] wiphy: Add wiphy_get_max_roc_duration Andrew Zaborowski
2019-10-22 3:26 ` Denis Kenzior
2019-10-21 13:55 ` [PATCH 11/11] wiphy: Add wiphy_get_supported_rates Andrew Zaborowski
2019-10-22 14:53 ` [PATCH 01/11] netdev: Add a wdev_id based frame watch API Denis Kenzior
2019-10-22 23:56 ` Andrew Zaborowski
2019-10-23 0:23 ` Denis Kenzior
2019-10-23 1:04 ` Andrew Zaborowski
2019-10-23 1:32 ` Denis Kenzior
2019-10-24 0:59 ` Andrew Zaborowski
2019-10-24 2:53 ` Denis Kenzior
2019-10-24 3:22 ` Andrew Zaborowski
2019-10-24 15:29 ` Denis Kenzior
2019-10-24 21:47 ` Andrew Zaborowski
2019-10-24 22:16 ` Denis Kenzior
2019-10-24 22:45 ` Andrew Zaborowski
2019-10-25 1:27 ` Denis Kenzior
2019-10-25 2:59 ` Andrew Zaborowski
2019-10-25 3:56 ` Denis Kenzior
2019-10-25 4:42 ` Andrew Zaborowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d0bfc5b8-7880-7bb5-1a1c-bc671918de76@gmail.com \
--to=denkenz@gmail.com \
--cc=iwd@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.