18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * UPnP WPS Device 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2000-2003 Intel Corporation 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2006-2007 Sony Corporation 58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2008-2009 Atheros Communications 68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * See wps_upnp.c for more details on licensing and code history. 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef WPS_UPNP_H 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define WPS_UPNP_H 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 14d7ff03d48f825360eec2a371e3361306f2fd721bDmitry Shmidt#include "utils/list.h" 15d7ff03d48f825360eec2a371e3361306f2fd721bDmitry Shmidt 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct upnp_wps_device_sm; 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wps_context; 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wps_data; 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct upnp_wps_peer { 21d7ff03d48f825360eec2a371e3361306f2fd721bDmitry Shmidt struct dl_list list; 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wps_data *wps; 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtenum upnp_wps_wlanevent_type { 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt UPNP_WPS_WLANEVENT_TYPE_PROBE = 1, 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt UPNP_WPS_WLANEVENT_TYPE_EAP = 2 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct upnp_wps_device_ctx { 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int (*rx_req_put_wlan_response)( 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void *priv, enum upnp_wps_wlanevent_type ev_type, 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 *mac_addr, const struct wpabuf *msg, 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt enum wps_msg_type msg_type); 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *ap_pin; 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct upnp_wps_device_sm * 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtupnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps, 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt void *priv, char *net_if); 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid upnp_wps_device_deinit(struct upnp_wps_device_sm *sm, void *priv); 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm, 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 from_mac_addr[ETH_ALEN], 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt enum upnp_wps_wlanevent_type ev_type, 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const struct wpabuf *msg); 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint upnp_wps_subscribers(struct upnp_wps_device_sm *sm); 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint upnp_wps_set_ap_pin(struct upnp_wps_device_sm *sm, const char *ap_pin); 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* WPS_UPNP_H */ 52