Home | History | Annotate | Download | only in wps
      1 /*
      2  * UPnP WPS Device
      3  * Copyright (c) 2000-2003 Intel Corporation
      4  * Copyright (c) 2006-2007 Sony Corporation
      5  * Copyright (c) 2008-2009 Atheros Communications
      6  * Copyright (c) 2009, Jouni Malinen <j (at) w1.fi>
      7  *
      8  * See wps_upnp.c for more details on licensing and code history.
      9  */
     10 
     11 #ifndef WPS_UPNP_H
     12 #define WPS_UPNP_H
     13 
     14 #include "utils/list.h"
     15 
     16 struct upnp_wps_device_sm;
     17 struct wps_context;
     18 struct wps_data;
     19 
     20 struct upnp_wps_peer {
     21 	struct dl_list list;
     22 	struct wps_data *wps;
     23 };
     24 
     25 enum upnp_wps_wlanevent_type {
     26 	UPNP_WPS_WLANEVENT_TYPE_PROBE = 1,
     27 	UPNP_WPS_WLANEVENT_TYPE_EAP = 2
     28 };
     29 
     30 struct upnp_wps_device_ctx {
     31 	int (*rx_req_put_wlan_response)(
     32 		void *priv, enum upnp_wps_wlanevent_type ev_type,
     33 		const u8 *mac_addr, const struct wpabuf *msg,
     34 		enum wps_msg_type msg_type);
     35 
     36 	char *ap_pin;
     37 };
     38 
     39 struct upnp_wps_device_sm *
     40 upnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps,
     41 		     void *priv, char *net_if);
     42 void upnp_wps_device_deinit(struct upnp_wps_device_sm *sm, void *priv);
     43 
     44 int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm,
     45 				    const u8 from_mac_addr[ETH_ALEN],
     46 				    enum upnp_wps_wlanevent_type ev_type,
     47 				    const struct wpabuf *msg);
     48 int upnp_wps_subscribers(struct upnp_wps_device_sm *sm);
     49 int upnp_wps_set_ap_pin(struct upnp_wps_device_sm *sm, const char *ap_pin);
     50 
     51 #endif /* WPS_UPNP_H */
     52