$search
00001 /* 00002 * UPnP WPS Device 00003 * Copyright (c) 2000-2003 Intel Corporation 00004 * Copyright (c) 2006-2007 Sony Corporation 00005 * Copyright (c) 2008-2009 Atheros Communications 00006 * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 00007 * 00008 * See wps_upnp.c for more details on licensing and code history. 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 /* WPS_UPNP_H */