aboutsummaryrefslogtreecommitdiffstats
path: root/src/wps/wps_upnp_i.h
Commit message (Collapse)AuthorAgeFilesLines
* WPS: Fix clearing of SetSelectedRegistrar with multiple interfacesJouni Malinen2012-02-131-1/+2
| | | | | | | | | | | | | | | | | | The SetSelectedRegistrar timeout was registered for each registrar instance, but the only context pointer (struct subscription *) was shared with each registrar which resulted in the timeout getting cancelled for some of the registrar instances before the selected registrar (ER) information was cleared. In addition, when an ER unsubscribed from receiving events, the selected registrar information got cleared only from a single registrar. Fix these issues by registering a pointer to the registrar instance in the timeout and by iterating over all UPnP interfaces when removing a subscription. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
* WPS: Change concurrent radio AP to use only one WPS UPnP instanceJouni Malinen2010-11-111-8/+15
| | | | | | | | | | | | | WPS external Registrars can get confused about multiple UPnP instances (one per radio) on a dual-concurrent APs. Simplify the design by sharing a single UPnP state machine for all wireless interfaces controlled by hostapd. This matches with the previous changes that made a single command enable WPS functionality on all interfaces. This is relatively minimal change to address the sharing of the state among multiple struct hostapd_data instances. More cleanup can be done separately to remove unnecessary copies of information.
* WPS UPnP: Throttle WLANEvent notifications to 5 per secondJouni Malinen2010-10-171-0/+2
| | | | | | | | Do not send more than five Probe Request WLANEvent notifications per second. Even though the limit should in theory apply to all WLANEvents, it is better not to drop EAP notifications because of Probe Request frames and really, the only real reason for event bursts is Probe Request frames.
* WPS: Limit Probe Request event queuing if subscriber may have leftJouni Malinen2010-10-171-1/+3
| | | | | | | Instead of queuing all events for a subscriber, only queue more important events if delivery of event notifications starts failing. This allows more time for the subscriber to recover since the maximum queue length if not reached because of Probe Request frames only.
* WPS UPnP: Improved event notification failure processingJouni Malinen2010-10-171-0/+2
| | | | | | Instead of dropping the subscription on first failure, allow up to 10 failures before dropping. In addition, drop the callback URLs one by one instead of full subscription if only one URL is failing.
* WPS 2.0: Add support for AuthorizedMACs attributeJouni Malinen2010-09-091-0/+1
| | | | | | | | | | Advertize list of authorized enrollee MAC addresses in Beacon and Probe Response frames and use these when selecting the AP. In order to provide the list, the enrollee MAC address should be specified whenever adding a new PIN. In addition, add UUID-R into SetSelectedRegistrar action to make it potentially easier for an AP to figure out which ER sent the action should there be multiple ERs using the same IP address.
* WPS: Remove unused mac_addr_text parameter from get_netif_info()Jouni Malinen2010-01-091-2/+1
|
* WPS: Remove unused net_if copyJouni Malinen2009-12-191-1/+0
|
* WPS: Remove parent pointer from advertisement state machineJouni Malinen2009-12-191-1/+0
|
* WPS: Convert struct advertisement_state_machine to use struct dl_listJouni Malinen2009-12-191-6/+2
|
* WPS: Remove unused struct subscr_addr parent pointerJouni Malinen2009-12-191-1/+0
|
* WPS: Convert struct wps_event_ to use struct dl_listJouni Malinen2009-12-191-2/+1
|
* WPS: Convert struct subscription to use struct dl_listJouni Malinen2009-12-191-6/+2
|
* WPS: Convert struct subscr_addr to use dl_listJouni Malinen2009-12-191-5/+3
|
* WPS: Handle Selected Registrar as a union of info from all RegistrarsJouni Malinen2009-12-121-0/+13
| | | | | | | | | | | | | | | | | Instead of using the latest selected registrar change, collect selected registrar information separately from all registrars and use the union of this information when building the WPS IE for Beacon and Probe Response frames. Note: SetSelectedRegistrar UPnP action does not include a unique identifier, so the ER matching routine is based only on the IP address of the ER. In theory, there could be multiple ERs using the same IP address (but different port or URL), so there may be some corner cases that would not always match the correct ER entry at the AP. Anyway, this is not really expected to occur in normal use cases and even if it did happen, the selected registrar information is not any worse than it was before when only the last change from any registrar for being advertized.
* WPS: Cleanup subscription URL list handlingJouni Malinen2009-11-211-1/+1
| | | | | | | Do not give the allocated memory to the subscription code since it was not using it as-is anyway. This makes it easier to understand who owns the allocation an is responsible of freeing it. This may potentially fix some memory leaks on error paths.
* WPS: Send SSDP byebye notifications when stopping UPnP advertisementsJouni Malinen2009-11-151-1/+2
| | | | | | This will notify control points of the services going away and allows them to notice this without having to wait timeout on the initial advertisements.
* WPS: Read HTTP request within HTTP server codeJouni Malinen2009-11-081-4/+0
| | | | | This removes HTTP related code from wps_upnp_web.c and makes it easier to use HTTP server functionality for new uses (e.g., WPS ER).
* WPS: Add HTTP server moduleJouni Malinen2009-11-081-2/+1
| | | | | | Clean up code so that UPnP implementation does not need to include all the HTTP functionality. In addition, make it easier to share HTTP server functionality with other components in the future.
* WPS: Move generic UPnP XML helper functionality into a separate fileJouni Malinen2009-11-081-15/+2
|
* WPS: Mark functions staticJouni Malinen2009-11-071-1/+0
| | | | These functions are used only within wps_upnp_event.c.
* WPS: Add initial part of External Registrar functionalityJouni Malinen2009-11-071-1/+7
| | | | | | This is the first step in adding support for using wpa_supplicant as a WPS External Registrar to manage APs over UPnP. Only the device discovery part is implemented in this commit.
* WPS: Add support for external Registrars using UPnP transportJouni Malinen2009-01-291-0/+193
This adds mostly feature complete external Registrar support with the main missing part being proper support for multiple external Registrars working at the same time and processing of concurrent registrations when using an external Registrar. This code is based on Sony/Saice implementation (https://www.saice-wpsnfc.bz/) and the changes made by Ted Merrill (Atheros) to make it more suitable for hostapd design and embedded systems. Some of the UPnP code is based on Intel's libupnp. Copyrights and licensing are explained in src/wps/wps_upnp.c in more detail.