wps_upnp.h
Go to the documentation of this file.00001
00012 #ifndef WPS_UPNP_H
00013 #define WPS_UPNP_H
00014
00015 struct upnp_wps_device_sm;
00016 struct wps_context;
00017 struct wps_data;
00018
00019 struct upnp_wps_peer {
00020 struct wps_data *wps;
00021 };
00022
00023 enum upnp_wps_wlanevent_type {
00024 UPNP_WPS_WLANEVENT_TYPE_PROBE = 1,
00025 UPNP_WPS_WLANEVENT_TYPE_EAP = 2
00026 };
00027
00028 struct upnp_wps_device_ctx {
00029 struct wpabuf * (*rx_req_get_device_info)(
00030 void *priv, struct upnp_wps_peer *peer);
00031 struct wpabuf * (*rx_req_put_message)(
00032 void *priv, struct upnp_wps_peer *peer,
00033 const struct wpabuf *msg);
00034 int (*rx_req_put_wlan_response)(
00035 void *priv, enum upnp_wps_wlanevent_type ev_type,
00036 const u8 *mac_addr, const struct wpabuf *msg,
00037 enum wps_msg_type msg_type);
00038 int (*rx_req_set_selected_registrar)(void *priv,
00039 const struct wpabuf *msg);
00040 };
00041
00042 struct upnp_wps_device_sm *
00043 upnp_wps_device_init(struct upnp_wps_device_ctx *ctx, struct wps_context *wps,
00044 void *priv);
00045 void upnp_wps_device_deinit(struct upnp_wps_device_sm *sm);
00046
00047 int upnp_wps_device_start(struct upnp_wps_device_sm *sm, char *net_if);
00048 void upnp_wps_device_stop(struct upnp_wps_device_sm *sm);
00049
00050 int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm,
00051 const u8 from_mac_addr[ETH_ALEN],
00052 enum upnp_wps_wlanevent_type ev_type,
00053 const struct wpabuf *msg);
00054 int upnp_wps_subscribers(struct upnp_wps_device_sm *sm);
00055
00056 #endif
00057