xref: /dflybsd-src/contrib/wpa_supplicant/src/wps/wps_upnp.h (revision 3a84a4273475ed07d0ab1c2dfeffdfedef35d9cd)
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