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