2009-01-29 17:47:02 +01:00
|
|
|
/*
|
|
|
|
* UPnP WPS Device
|
|
|
|
* Copyright (c) 2000-2003 Intel Corporation
|
|
|
|
* Copyright (c) 2006-2007 Sony Corporation
|
|
|
|
* Copyright (c) 2008-2009 Atheros Communications
|
|
|
|
* Copyright (c) 2009, Jouni Malinen <j@w1.fi>
|
|
|
|
*
|
|
|
|
* See wps_upnp.c for more details on licensing and code history.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef WPS_UPNP_H
|
|
|
|
#define WPS_UPNP_H
|
|
|
|
|
|
|
|
struct upnp_wps_device_sm;
|
|
|
|
struct wps_context;
|
|
|
|
struct wps_data;
|
|
|
|
|
|
|
|
struct upnp_wps_peer {
|
|
|
|
struct wps_data *wps;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum upnp_wps_wlanevent_type {
|
|
|
|
UPNP_WPS_WLANEVENT_TYPE_PROBE = 1,
|
|
|
|
UPNP_WPS_WLANEVENT_TYPE_EAP = 2
|
|
|
|
};
|
|
|
|
|
|
|
|
struct upnp_wps_device_ctx {
|
|
|
|
struct wpabuf * (*rx_req_get_device_info)(
|
|
|
|
void *priv, struct upnp_wps_peer *peer);
|
|
|
|
struct wpabuf * (*rx_req_put_message)(
|
|
|
|
void *priv, struct upnp_wps_peer *peer,
|
|
|
|
const struct wpabuf *msg);
|
|
|
|
struct wpabuf * (*rx_req_get_ap_settings)(void *priv,
|
|
|
|
const struct wpabuf *msg);
|
|
|
|
int (*rx_req_set_ap_settings)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_del_ap_settings)(void *priv, const struct wpabuf *msg);
|
|
|
|
struct wpabuf * (*rx_req_get_sta_settings)(void *priv,
|
|
|
|
const struct wpabuf *msg);
|
|
|
|
int (*rx_req_set_sta_settings)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_del_sta_settings)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_put_wlan_event_response)(
|
|
|
|
void *priv, enum upnp_wps_wlanevent_type ev_type,
|
2009-02-06 20:39:32 +01:00
|
|
|
const u8 *mac_addr, const struct wpabuf *msg,
|
|
|
|
enum wps_msg_type msg_type);
|
2009-01-29 17:47:02 +01:00
|
|
|
int (*rx_req_set_selected_registrar)(void *priv,
|
|
|
|
const struct wpabuf *msg);
|
|
|
|
int (*rx_req_reboot_ap)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_reset_ap)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_reboot_sta)(void *priv, const struct wpabuf *msg);
|
|
|
|
int (*rx_req_reset_sta)(void *priv, const struct wpabuf *msg);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct upnp_wps_device_sm *
|
|
|
|
upnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps,
|
|
|
|
void *priv);
|
|
|
|
void upnp_wps_device_deinit(struct upnp_wps_device_sm *sm);
|
|
|
|
|
|
|
|
int upnp_wps_device_start(struct upnp_wps_device_sm *sm, char *net_if);
|
|
|
|
void upnp_wps_device_stop(struct upnp_wps_device_sm *sm);
|
|
|
|
|
|
|
|
int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm,
|
|
|
|
const u8 from_mac_addr[ETH_ALEN],
|
|
|
|
enum upnp_wps_wlanevent_type ev_type,
|
|
|
|
const struct wpabuf *msg);
|
|
|
|
int upnp_wps_subscribers(struct upnp_wps_device_sm *sm);
|
|
|
|
|
|
|
|
#endif /* WPS_UPNP_H */
|