123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- * Wi-Fi Protected Setup - External Registrar
- * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
- #ifndef WPS_ER_H
- #define WPS_ER_H
- #include "utils/list.h"
- struct wps_er_sta {
- struct dl_list list;
- struct wps_er_ap *ap;
- u8 addr[ETH_ALEN];
- u16 config_methods;
- u8 uuid[WPS_UUID_LEN];
- u8 pri_dev_type[8];
- u16 dev_passwd_id;
- int m1_received;
- char *manufacturer;
- char *model_name;
- char *model_number;
- char *serial_number;
- char *dev_name;
- struct wps_data *wps;
- struct http_client *http;
- struct wps_credential *cred;
- };
- struct wps_er_ap {
- struct dl_list list;
- struct wps_er *er;
- struct dl_list sta; /* list of STAs/Enrollees using this AP */
- struct in_addr addr;
- char *location;
- struct http_client *http;
- struct wps_data *wps;
- u8 uuid[WPS_UUID_LEN];
- u8 pri_dev_type[8];
- u8 wps_state;
- u8 mac_addr[ETH_ALEN];
- char *friendly_name;
- char *manufacturer;
- char *manufacturer_url;
- char *model_description;
- char *model_name;
- char *model_number;
- char *model_url;
- char *serial_number;
- char *udn;
- char *upc;
- char *scpd_url;
- char *control_url;
- char *event_sub_url;
- int subscribed;
- u8 sid[WPS_UUID_LEN];
- unsigned int id;
- struct wps_credential *ap_settings;
- void (*m1_handler)(struct wps_er_ap *ap, struct wpabuf *m1);
- };
- struct wps_er_ap_settings {
- struct dl_list list;
- u8 uuid[WPS_UUID_LEN];
- struct wps_credential ap_settings;
- };
- struct wps_er {
- struct wps_context *wps;
- char ifname[17];
- int forced_ifname;
- u8 mac_addr[ETH_ALEN]; /* mac addr of network i.f. we use */
- char *ip_addr_text; /* IP address of network i.f. we use */
- unsigned ip_addr; /* IP address of network i.f. we use (host order) */
- int multicast_sd;
- int ssdp_sd;
- struct dl_list ap;
- struct dl_list ap_unsubscribing;
- struct dl_list ap_settings;
- struct http_server *http_srv;
- int http_port;
- unsigned int next_ap_id;
- unsigned int event_id;
- int deinitializing;
- void (*deinit_done_cb)(void *ctx);
- void *deinit_done_ctx;
- struct in_addr filter_addr;
- int skip_set_sel_reg;
- const u8 *set_sel_reg_uuid_filter;
- };
- /* wps_er.c */
- void wps_er_ap_add(struct wps_er *er, const u8 *uuid, struct in_addr *addr,
- const char *location, int max_age);
- void wps_er_ap_remove(struct wps_er *er, struct in_addr *addr);
- int wps_er_ap_cache_settings(struct wps_er *er, struct in_addr *addr);
- /* wps_er_ssdp.c */
- int wps_er_ssdp_init(struct wps_er *er);
- void wps_er_ssdp_deinit(struct wps_er *er);
- void wps_er_send_ssdp_msearch(struct wps_er *er);
- #endif /* WPS_ER_H */
|