Lines Matching defs:dpp

18 #include "dpp.h"
138 int dpp_relay_add_controller(struct dpp_global *dpp,
144 if (!dpp)
151 ctrl->global = dpp;
160 dl_list_add(&dpp->controllers, &ctrl->list);
166 dpp_relay_controller_get(struct dpp_global *dpp, const u8 *pkhash)
170 if (!dpp)
173 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
184 dpp_relay_controller_get_ctx(struct dpp_global *dpp, void *cb_ctx)
188 if (!dpp)
191 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
202 dpp_relay_controller_get_addr(struct dpp_global *dpp,
207 if (!dpp)
210 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
217 if (dpp->tmp_controller &&
218 dpp->tmp_controller->ipaddr.af == AF_INET &&
219 addr->sin_addr.s_addr == dpp->tmp_controller->ipaddr.u.v4.s_addr)
220 return dpp->tmp_controller;
584 int dpp_relay_rx_action(struct dpp_global *dpp, const u8 *src, const u8 *hdr,
600 dl_list_for_each(ctrl, &dpp->controllers,
607 if (dpp->tmp_controller) {
608 conn = dpp_relay_match_ctrl(dpp->tmp_controller, src,
619 ctrl = dpp_relay_controller_get_ctx(dpp, cb_ctx);
621 ctrl = dpp_relay_controller_get_ctx(dpp, cb_ctx);
625 ctrl = dpp_relay_controller_get(dpp, r_bootstrap);
672 int dpp_relay_rx_gas_req(struct dpp_global *dpp, const u8 *src, const u8 *data,
682 dl_list_for_each(ctrl, &dpp->controllers,
689 if (!conn && dpp->tmp_controller)
690 conn = dpp_relay_find_conn(dpp->tmp_controller, src);
711 bool dpp_relay_controller_available(struct dpp_global *dpp)
713 return dpp && dl_list_len(&dpp->controllers) > 0;
956 struct dpp_global *dpp = conn->ctrl->global;
969 peer_bi = dpp_bootstrap_find_chirp(dpp, r_bootstrap);
982 auth = dpp_auth_init(dpp, conn->msg_ctx, peer_bi, NULL,
1003 struct dpp_global *dpp = conn->ctrl->global;
1024 conf = dpp_configurator_find_kid(dpp, csign_hash);
1044 auth = dpp_reconfig_init(dpp, conn->msg_ctx, conf, 0, group,
1914 int dpp_tcp_pkex_init(struct dpp_global *dpp, struct dpp_pkex *pkex,
1943 conn->global = dpp;
1984 dl_list_add(&dpp->tcp_init, &conn->list);
2009 int dpp_tcp_init(struct dpp_global *dpp, struct dpp_authentication *auth,
2051 conn->global = dpp;
2086 dl_list_add(&dpp->tcp_init, &conn->list);
2094 int dpp_tcp_auth(struct dpp_global *dpp, void *_conn,
2130 int dpp_controller_start(struct dpp_global *dpp,
2138 if (!dpp || dpp->controller)
2144 ctrl->global = dpp;
2193 dpp->controller = ctrl;
2202 int dpp_controller_set_params(struct dpp_global *dpp,
2206 if (!dpp || !dpp->controller)
2214 os_free(dpp->controller->configurator_params);
2215 dpp->controller->configurator_params = val;
2217 os_free(dpp->controller->configurator_params);
2218 dpp->controller->configurator_params = NULL;
2225 void dpp_controller_stop(struct dpp_global *dpp)
2227 if (dpp) {
2228 dpp_controller_free(dpp->controller);
2229 dpp->controller = NULL;
2234 void dpp_controller_stop_for_ctx(struct dpp_global *dpp, void *cb_ctx)
2236 if (dpp && dpp->controller && dpp->controller->cb_ctx == cb_ctx)
2237 dpp_controller_stop(dpp);
2250 static struct dpp_authentication * dpp_tcp_get_auth(struct dpp_global *dpp,
2255 dl_list_for_each(conn, &dpp->tcp_init, struct dpp_connection, list) {
2264 struct dpp_authentication * dpp_controller_get_auth(struct dpp_global *dpp,
2267 struct dpp_controller *ctrl = dpp->controller;
2271 return dpp_tcp_get_auth(dpp, id);
2278 return dpp_tcp_get_auth(dpp, id);
2282 void dpp_controller_new_qr_code(struct dpp_global *dpp,
2285 struct dpp_controller *ctrl = dpp->controller;
2304 void dpp_controller_pkex_add(struct dpp_global *dpp,
2308 struct dpp_controller *ctrl = dpp->controller;
2321 bool dpp_controller_is_own_pkex_req(struct dpp_global *dpp,
2328 dl_list_for_each(conn, &dpp->tcp_init, struct dpp_connection, list) {
2350 void dpp_tcp_init_flush(struct dpp_global *dpp)
2354 dl_list_for_each_safe(conn, tmp, &dpp->tcp_init, struct dpp_connection,
2375 void dpp_relay_flush_controllers(struct dpp_global *dpp)
2379 if (!dpp)
2382 dl_list_for_each_safe(ctrl, tmp, &dpp->controllers,
2388 if (dpp->tmp_controller) {
2389 dpp_relay_controller_free(dpp->tmp_controller);
2390 dpp->tmp_controller = NULL;
2395 void dpp_relay_remove_controller(struct dpp_global *dpp,
2400 if (!dpp)
2403 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
2412 if (dpp->tmp_controller &&
2413 hostapd_ip_equal(&dpp->tmp_controller->ipaddr, addr)) {
2414 dpp_relay_controller_free(dpp->tmp_controller);
2415 dpp->tmp_controller = NULL;
2422 struct dpp_global *dpp = eloop_ctx;
2431 fd = accept(dpp->relay_sock, (struct sockaddr *) &addr, &addr_len);
2441 ctrl = dpp_relay_controller_get_addr(dpp, &addr);
2442 if (!ctrl && dpp->tmp_controller &&
2443 dl_list_len(&dpp->tmp_controller->conn)) {
2448 hostapd_ip_txt(&dpp->tmp_controller->ipaddr,
2450 dpp_relay_controller_free(dpp->tmp_controller);
2451 dpp->tmp_controller = NULL;
2453 if (!ctrl && !dpp->tmp_controller) {
2459 ctrl->global = dpp;
2462 ctrl->msg_ctx = dpp->relay_msg_ctx;
2463 ctrl->cb_ctx = dpp->relay_cb_ctx;
2464 ctrl->tx = dpp->relay_tx;
2465 ctrl->gas_resp_tx = dpp->relay_gas_resp_tx;
2466 dpp->tmp_controller = ctrl;
2513 int dpp_relay_listen(struct dpp_global *dpp, int port,
2520 if (dpp->relay_sock >= 0) {
2562 eloop_register_sock(s, EVENT_TYPE_READ, dpp_relay_tcp_cb, dpp,
2568 dpp->relay_sock = s;
2569 dpp->relay_msg_ctx = config->msg_ctx;
2570 dpp->relay_cb_ctx = config->cb_ctx;
2571 dpp->relay_tx = config->tx;
2572 dpp->relay_gas_resp_tx = config->gas_resp_tx;
2578 void dpp_relay_stop_listen(struct dpp_global *dpp)
2580 if (!dpp || dpp->relay_sock < 0)
2582 eloop_unregister_sock(dpp->relay_sock, EVENT_TYPE_READ);
2583 close(dpp->relay_sock);
2584 dpp->relay_sock = -1;
2588 bool dpp_tcp_conn_status_requested(struct dpp_global *dpp)
2592 if (!dpp)
2595 dl_list_for_each(conn, &dpp->tcp_init, struct dpp_connection, list) {
2604 static void dpp_tcp_send_conn_status_msg(struct dpp_global *dpp,
2634 dl_list_for_each(c, &dpp->tcp_init, struct dpp_connection, list) {
2645 void dpp_tcp_send_conn_status(struct dpp_global *dpp,
2652 dl_list_for_each(conn, &dpp->tcp_init, struct dpp_connection, list) {
2654 dpp_tcp_send_conn_status_msg(dpp, conn, result, ssid,