00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef WPS_UPNP_H
00012 #define WPS_UPNP_H
00013
00014 struct upnp_wps_device_sm;
00015 struct wps_context;
00016 struct wps_data;
00017
00018 struct upnp_wps_peer {
00019 struct wps_data *wps;
00020 };
00021
00022 enum upnp_wps_wlanevent_type {
00023 UPNP_WPS_WLANEVENT_TYPE_PROBE = 1,
00024 UPNP_WPS_WLANEVENT_TYPE_EAP = 2
00025 };
00026
00027 struct upnp_wps_device_ctx {
00028 int (*rx_req_put_wlan_response)(
00029 void *priv, enum upnp_wps_wlanevent_type ev_type,
00030 const u8 *mac_addr, const struct wpabuf *msg,
00031 enum wps_msg_type msg_type);
00032
00033 char *ap_pin;
00034 };
00035
00036 struct upnp_wps_device_sm *
00037 upnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps,
00038 void *priv);
00039 void upnp_wps_device_deinit(struct upnp_wps_device_sm *sm);
00040
00041 int upnp_wps_device_start(struct upnp_wps_device_sm *sm, char *net_if);
00042 void upnp_wps_device_stop(struct upnp_wps_device_sm *sm);
00043
00044 int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm,
00045 const u8 from_mac_addr[ETH_ALEN],
00046 enum upnp_wps_wlanevent_type ev_type,
00047 const struct wpabuf *msg);
00048 int upnp_wps_subscribers(struct upnp_wps_device_sm *sm);
00049
00050 #endif