16d49e1aeSJan Lentfer /* 26d49e1aeSJan Lentfer * UPnP WPS Device 36d49e1aeSJan Lentfer * Copyright (c) 2000-2003 Intel Corporation 46d49e1aeSJan Lentfer * Copyright (c) 2006-2007 Sony Corporation 56d49e1aeSJan Lentfer * Copyright (c) 2008-2009 Atheros Communications 66d49e1aeSJan Lentfer * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 76d49e1aeSJan Lentfer * 86d49e1aeSJan Lentfer * See wps_upnp.c for more details on licensing and code history. 96d49e1aeSJan Lentfer */ 106d49e1aeSJan Lentfer 116d49e1aeSJan Lentfer #ifndef WPS_UPNP_H 126d49e1aeSJan Lentfer #define WPS_UPNP_H 136d49e1aeSJan Lentfer 14*a1157835SDaniel Fojt #include "utils/list.h" 15*a1157835SDaniel Fojt 166d49e1aeSJan Lentfer struct upnp_wps_device_sm; 176d49e1aeSJan Lentfer struct wps_context; 186d49e1aeSJan Lentfer struct wps_data; 196d49e1aeSJan Lentfer 206d49e1aeSJan Lentfer struct upnp_wps_peer { 21*a1157835SDaniel Fojt struct dl_list list; 226d49e1aeSJan Lentfer struct wps_data *wps; 236d49e1aeSJan Lentfer }; 246d49e1aeSJan Lentfer 256d49e1aeSJan Lentfer enum upnp_wps_wlanevent_type { 266d49e1aeSJan Lentfer UPNP_WPS_WLANEVENT_TYPE_PROBE = 1, 276d49e1aeSJan Lentfer UPNP_WPS_WLANEVENT_TYPE_EAP = 2 286d49e1aeSJan Lentfer }; 296d49e1aeSJan Lentfer 306d49e1aeSJan Lentfer struct upnp_wps_device_ctx { 316d49e1aeSJan Lentfer int (*rx_req_put_wlan_response)( 326d49e1aeSJan Lentfer void *priv, enum upnp_wps_wlanevent_type ev_type, 336d49e1aeSJan Lentfer const u8 *mac_addr, const struct wpabuf *msg, 346d49e1aeSJan Lentfer enum wps_msg_type msg_type); 353ff40c12SJohn Marino 363ff40c12SJohn Marino char *ap_pin; 376d49e1aeSJan Lentfer }; 386d49e1aeSJan Lentfer 396d49e1aeSJan Lentfer struct upnp_wps_device_sm * 406d49e1aeSJan Lentfer upnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps, 413ff40c12SJohn Marino void *priv, char *net_if); 423ff40c12SJohn Marino void upnp_wps_device_deinit(struct upnp_wps_device_sm *sm, void *priv); 436d49e1aeSJan Lentfer 446d49e1aeSJan Lentfer int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm, 456d49e1aeSJan Lentfer const u8 from_mac_addr[ETH_ALEN], 466d49e1aeSJan Lentfer enum upnp_wps_wlanevent_type ev_type, 476d49e1aeSJan Lentfer const struct wpabuf *msg); 486d49e1aeSJan Lentfer int upnp_wps_subscribers(struct upnp_wps_device_sm *sm); 493ff40c12SJohn Marino int upnp_wps_set_ap_pin(struct upnp_wps_device_sm *sm, const char *ap_pin); 506d49e1aeSJan Lentfer 516d49e1aeSJan Lentfer #endif /* WPS_UPNP_H */ 52