Lines Matching refs:ctrl
24 struct dpp_controller *ctrl; member
101 struct dpp_relay_controller *ctrl; in dpp_relay_add_controller() local
106 ctrl = os_zalloc(sizeof(*ctrl)); in dpp_relay_add_controller()
107 if (!ctrl) in dpp_relay_add_controller()
109 dl_list_init(&ctrl->conn); in dpp_relay_add_controller()
110 ctrl->global = dpp; in dpp_relay_add_controller()
111 os_memcpy(&ctrl->ipaddr, config->ipaddr, sizeof(*config->ipaddr)); in dpp_relay_add_controller()
112 os_memcpy(ctrl->pkhash, config->pkhash, SHA256_MAC_LEN); in dpp_relay_add_controller()
113 ctrl->cb_ctx = config->cb_ctx; in dpp_relay_add_controller()
114 ctrl->tx = config->tx; in dpp_relay_add_controller()
115 ctrl->gas_resp_tx = config->gas_resp_tx; in dpp_relay_add_controller()
116 dl_list_add(&dpp->controllers, &ctrl->list); in dpp_relay_add_controller()
124 struct dpp_relay_controller *ctrl; in dpp_relay_controller_get() local
129 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller, in dpp_relay_controller_get()
131 if (os_memcmp(pkhash, ctrl->pkhash, SHA256_MAC_LEN) == 0) in dpp_relay_controller_get()
132 return ctrl; in dpp_relay_controller_get()
151 if (conn->ctrl) in dpp_controller_gas_done()
152 msg_ctx = conn->ctrl->global->msg_ctx; in dpp_controller_gas_done()
204 } else if (conn->auth && (conn->ctrl || conn->auth->configurator) && in dpp_tcp_send()
335 dpp_relay_new_conn(struct dpp_relay_controller *ctrl, const u8 *src, in dpp_relay_new_conn() argument
343 if (dl_list_len(&ctrl->conn) >= 15) { in dpp_relay_new_conn()
350 &ctrl->ipaddr, DPP_TCP_PORT) < 0) in dpp_relay_new_conn()
357 conn->global = ctrl->global; in dpp_relay_new_conn()
358 conn->relay = ctrl; in dpp_relay_new_conn()
366 conn->sock, hostapd_ip_txt(&ctrl->ipaddr, txt, sizeof(txt))); in dpp_relay_new_conn()
395 dl_list_add(&ctrl->conn, &conn->list); in dpp_relay_new_conn()
447 struct dpp_relay_controller *ctrl; in dpp_relay_rx_action() local
458 dl_list_for_each(ctrl, &dpp->controllers, in dpp_relay_rx_action()
460 dl_list_for_each(conn, &ctrl->conn, in dpp_relay_rx_action()
473 ctrl = dl_list_first(&dpp->controllers, in dpp_relay_rx_action()
478 ctrl = dpp_relay_controller_get(dpp, r_bootstrap); in dpp_relay_rx_action()
480 if (!ctrl) in dpp_relay_rx_action()
485 conn = dpp_relay_new_conn(ctrl, src, freq); in dpp_relay_rx_action()
503 struct dpp_relay_controller *ctrl; in dpp_relay_rx_gas_req() local
510 dl_list_for_each(ctrl, &dpp->controllers, in dpp_relay_rx_gas_req()
514 dl_list_for_each(conn, &ctrl->conn, in dpp_relay_rx_gas_req()
543 static void dpp_controller_free(struct dpp_controller *ctrl) in dpp_controller_free() argument
547 if (!ctrl) in dpp_controller_free()
550 dl_list_for_each_safe(conn, tmp, &ctrl->conn, struct dpp_connection, in dpp_controller_free()
554 if (ctrl->sock >= 0) { in dpp_controller_free()
555 close(ctrl->sock); in dpp_controller_free()
556 eloop_unregister_sock(ctrl->sock, EVENT_TYPE_READ); in dpp_controller_free()
558 os_free(ctrl->configurator_params); in dpp_controller_free()
559 os_free(ctrl); in dpp_controller_free()
570 if (!conn->ctrl) in dpp_controller_rx_auth_req()
597 dpp_bootstrap_find_pair(conn->ctrl->global, i_bootstrap, r_bootstrap, in dpp_controller_rx_auth_req()
611 conn->auth = dpp_auth_req_rx(conn->ctrl->global, in dpp_controller_rx_auth_req()
612 conn->ctrl->global->msg_ctx, in dpp_controller_rx_auth_req()
613 conn->ctrl->allowed_roles, in dpp_controller_rx_auth_req()
614 conn->ctrl->qr_mutual, in dpp_controller_rx_auth_req()
622 conn->ctrl->configurator_params) < 0) { in dpp_controller_rx_auth_req()
695 wpa_msg(conn->ctrl->global->msg_ctx, MSG_INFO, in dpp_controller_conn_status_result_wait_timeout()
709 if (!conn->ctrl && (!auth || !auth->configurator)) in dpp_controller_rx_conf_result()
719 if (conn->ctrl) in dpp_controller_rx_conf_result()
720 msg_ctx = conn->ctrl->global->msg_ctx; in dpp_controller_rx_conf_result()
755 if (!conn->ctrl) in dpp_controller_rx_conn_status_result()
768 wpa_msg(conn->ctrl->global->msg_ctx, MSG_INFO, in dpp_controller_rx_conn_status_result()
786 struct dpp_global *dpp = conn->ctrl->global; in dpp_controller_rx_presence_announcement()
816 if (dpp_set_configurator(auth, conn->ctrl->configurator_params) < 0) { in dpp_controller_rx_presence_announcement()
834 struct dpp_global *dpp = conn->ctrl->global; in dpp_controller_rx_reconfig_announcement()
864 if (dpp_set_configurator(auth, conn->ctrl->configurator_params) < 0) { in dpp_controller_rx_reconfig_announcement()
984 if (!auth || (!conn->ctrl && !auth->configurator) || in dpp_controller_rx_gas_req()
1150 (!conn->ctrl || (conn->ctrl->allowed_roles & DPP_CAPAB_ENROLLEE))) in dpp_rx_gas_resp()
1281 struct dpp_controller *ctrl = eloop_ctx; in dpp_controller_tcp_cb() local
1289 fd = accept(ctrl->sock, (struct sockaddr *) &addr, &addr_len); in dpp_controller_tcp_cb()
1303 conn->global = ctrl->global; in dpp_controller_tcp_cb()
1304 conn->ctrl = ctrl; in dpp_controller_tcp_cb()
1320 dl_list_add(&ctrl->conn, &conn->list); in dpp_controller_tcp_cb()
1404 struct dpp_controller *ctrl; in dpp_controller_start() local
1412 ctrl = os_zalloc(sizeof(*ctrl)); in dpp_controller_start()
1413 if (!ctrl) in dpp_controller_start()
1415 ctrl->global = dpp; in dpp_controller_start()
1417 ctrl->configurator_params = in dpp_controller_start()
1419 dl_list_init(&ctrl->conn); in dpp_controller_start()
1420 ctrl->allowed_roles = config->allowed_roles; in dpp_controller_start()
1421 ctrl->qr_mutual = 0; in dpp_controller_start()
1423 ctrl->sock = socket(AF_INET, SOCK_STREAM, 0); in dpp_controller_start()
1424 if (ctrl->sock < 0) in dpp_controller_start()
1427 if (setsockopt(ctrl->sock, SOL_SOCKET, SO_REUSEADDR, in dpp_controller_start()
1435 if (fcntl(ctrl->sock, F_SETFL, O_NONBLOCK) < 0) { in dpp_controller_start()
1447 if (bind(ctrl->sock, (struct sockaddr *) &sin, sizeof(sin)) < 0) { in dpp_controller_start()
1453 if (listen(ctrl->sock, 10 /* max backlog */) < 0 || in dpp_controller_start()
1454 fcntl(ctrl->sock, F_SETFL, O_NONBLOCK) < 0 || in dpp_controller_start()
1455 eloop_register_sock(ctrl->sock, EVENT_TYPE_READ, in dpp_controller_start()
1456 dpp_controller_tcp_cb, ctrl, NULL)) in dpp_controller_start()
1459 dpp->controller = ctrl; in dpp_controller_start()
1463 dpp_controller_free(ctrl); in dpp_controller_start()
1487 static void dpp_relay_controller_free(struct dpp_relay_controller *ctrl) in dpp_relay_controller_free() argument
1491 dl_list_for_each_safe(conn, tmp, &ctrl->conn, struct dpp_connection, in dpp_relay_controller_free()
1494 os_free(ctrl); in dpp_relay_controller_free()
1500 struct dpp_relay_controller *ctrl, *tmp; in dpp_relay_flush_controllers() local
1505 dl_list_for_each_safe(ctrl, tmp, &dpp->controllers, in dpp_relay_flush_controllers()
1507 dl_list_del(&ctrl->list); in dpp_relay_flush_controllers()
1508 dpp_relay_controller_free(ctrl); in dpp_relay_flush_controllers()