Lines Matching defs:ctrl
25 struct dpp_controller *ctrl;
141 struct dpp_relay_controller *ctrl;
147 ctrl = os_zalloc(sizeof(*ctrl));
148 if (!ctrl)
150 dl_list_init(&ctrl->conn);
151 ctrl->global = dpp;
152 os_memcpy(&ctrl->ipaddr, config->ipaddr, sizeof(*config->ipaddr));
153 os_memcpy(ctrl->pkhash, config->pkhash, SHA256_MAC_LEN);
154 ctrl->msg_ctx = config->msg_ctx;
155 ctrl->cb_ctx = config->cb_ctx;
156 ctrl->tx = config->tx;
157 ctrl->gas_resp_tx = config->gas_resp_tx;
159 hostapd_ip_txt(&ctrl->ipaddr, txt, sizeof(txt)));
160 dl_list_add(&dpp->controllers, &ctrl->list);
168 struct dpp_relay_controller *ctrl;
173 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
175 if (os_memcmp(pkhash, ctrl->pkhash, SHA256_MAC_LEN) == 0)
176 return ctrl;
186 struct dpp_relay_controller *ctrl;
191 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
193 if (cb_ctx == ctrl->cb_ctx)
194 return ctrl;
205 struct dpp_relay_controller *ctrl;
210 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
212 if (ctrl->ipaddr.af == AF_INET &&
213 addr->sin_addr.s_addr == ctrl->ipaddr.u.v4.s_addr)
214 return ctrl;
305 } else if (conn->auth && (conn->ctrl || conn->auth->configurator) &&
449 dpp_relay_new_conn(struct dpp_relay_controller *ctrl, const u8 *src,
457 if (dl_list_len(&ctrl->conn) >= 15) {
464 &ctrl->ipaddr, DPP_TCP_PORT) < 0)
471 conn->global = ctrl->global;
472 conn->relay = ctrl;
473 conn->msg_ctx = ctrl->msg_ctx;
474 conn->cb_ctx = ctrl->global->cb_ctx;
482 conn->sock, hostapd_ip_txt(&ctrl->ipaddr, txt, sizeof(txt)));
511 dl_list_add(&ctrl->conn, &conn->list);
560 dpp_relay_match_ctrl(struct dpp_relay_controller *ctrl, const u8 *src,
565 dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
589 struct dpp_relay_controller *ctrl;
600 dl_list_for_each(ctrl, &dpp->controllers,
602 conn = dpp_relay_match_ctrl(ctrl, src, freq, type);
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);
627 if (!ctrl)
632 conn = dpp_relay_match_ctrl(ctrl, src, freq, type);
643 conn = dpp_relay_new_conn(ctrl, src, freq);
659 dpp_relay_find_conn(struct dpp_relay_controller *ctrl, const u8 *src)
663 dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
675 struct dpp_relay_controller *ctrl;
682 dl_list_for_each(ctrl, &dpp->controllers,
684 conn = dpp_relay_find_conn(ctrl, src);
717 static void dpp_controller_free(struct dpp_controller *ctrl)
721 if (!ctrl)
724 dl_list_for_each_safe(conn, tmp, &ctrl->conn, struct dpp_connection,
728 if (ctrl->sock >= 0) {
729 close(ctrl->sock);
730 eloop_unregister_sock(ctrl->sock, EVENT_TYPE_READ);
732 os_free(ctrl->configurator_params);
733 os_free(ctrl->pkex_code);
734 os_free(ctrl->pkex_identifier);
735 os_free(ctrl);
746 if (!conn->ctrl)
773 dpp_bootstrap_find_pair(conn->ctrl->global, i_bootstrap, r_bootstrap,
787 conn->auth = dpp_auth_req_rx(conn->ctrl->global, conn->msg_ctx,
788 conn->ctrl->allowed_roles,
789 conn->ctrl->qr_mutual,
797 conn->ctrl->configurator_params) < 0)
881 if (!conn->ctrl && (!auth || !auth->configurator))
926 if (!conn->ctrl)
956 struct dpp_global *dpp = conn->ctrl->global;
986 if (dpp_set_configurator(auth, conn->ctrl->configurator_params) < 0) {
1003 struct dpp_global *dpp = conn->ctrl->global;
1048 if (dpp_set_configurator(auth, conn->ctrl->configurator_params) < 0) {
1088 struct dpp_controller *ctrl = conn->ctrl;
1090 if (!ctrl)
1098 if (!ctrl->pkex_code || !ctrl->pkex_bi) {
1110 conn->pkex = dpp_pkex_rx_exchange_req(conn->msg_ctx, ctrl->pkex_bi,
1112 ctrl->pkex_identifier,
1113 ctrl->pkex_code,
1114 os_strlen(ctrl->pkex_code),
1399 if (!auth || (!conn->ctrl && !auth->configurator) ||
1505 if (!auth || (!conn->ctrl && !auth->configurator) ||
1723 (!conn->ctrl || (conn->ctrl->allowed_roles & DPP_CAPAB_ENROLLEE)))
1861 struct dpp_controller *ctrl = eloop_ctx;
1869 fd = accept(ctrl->sock, (struct sockaddr *) &addr, &addr_len);
1883 conn->global = ctrl->global;
1884 conn->ctrl = ctrl;
1885 conn->msg_ctx = ctrl->msg_ctx;
1886 conn->cb_ctx = ctrl->cb_ctx;
1887 conn->process_conf_obj = ctrl->process_conf_obj;
1888 conn->tcp_msg_sent = ctrl->tcp_msg_sent;
1890 conn->netrole = ctrl->netrole;
1905 dl_list_add(&ctrl->conn, &conn->list);
2133 struct dpp_controller *ctrl;
2141 ctrl = os_zalloc(sizeof(*ctrl));
2142 if (!ctrl)
2144 ctrl->global = dpp;
2146 ctrl->configurator_params =
2148 dl_list_init(&ctrl->conn);
2149 ctrl->allowed_roles = config->allowed_roles;
2150 ctrl->qr_mutual = config->qr_mutual;
2151 ctrl->netrole = config->netrole;
2152 ctrl->msg_ctx = config->msg_ctx;
2153 ctrl->cb_ctx = config->cb_ctx;
2154 ctrl->process_conf_obj = config->process_conf_obj;
2155 ctrl->tcp_msg_sent = config->tcp_msg_sent;
2157 ctrl->sock = socket(AF_INET, SOCK_STREAM, 0);
2158 if (ctrl->sock < 0)
2161 if (setsockopt(ctrl->sock, SOL_SOCKET, SO_REUSEADDR,
2169 if (fcntl(ctrl->sock, F_SETFL, O_NONBLOCK) < 0) {
2181 if (bind(ctrl->sock, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
2187 if (listen(ctrl->sock, 10 /* max backlog */) < 0 ||
2188 fcntl(ctrl->sock, F_SETFL, O_NONBLOCK) < 0 ||
2189 eloop_register_sock(ctrl->sock, EVENT_TYPE_READ,
2190 dpp_controller_tcp_cb, ctrl, NULL))
2193 dpp->controller = ctrl;
2197 dpp_controller_free(ctrl);
2267 struct dpp_controller *ctrl = dpp->controller;
2270 if (!ctrl)
2273 dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
2285 struct dpp_controller *ctrl = dpp->controller;
2288 if (!ctrl)
2291 dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
2308 struct dpp_controller *ctrl = dpp->controller;
2310 if (!ctrl)
2313 ctrl->pkex_bi = bi;
2314 os_free(ctrl->pkex_code);
2315 ctrl->pkex_code = code ? os_strdup(code) : NULL;
2316 os_free(ctrl->pkex_identifier);
2317 ctrl->pkex_identifier = identifier ? os_strdup(identifier) : NULL;
2360 static void dpp_relay_controller_free(struct dpp_relay_controller *ctrl)
2366 hostapd_ip_txt(&ctrl->ipaddr, txt, sizeof(txt)));
2368 dl_list_for_each_safe(conn, tmp, &ctrl->conn, struct dpp_connection,
2371 os_free(ctrl);
2377 struct dpp_relay_controller *ctrl, *tmp;
2382 dl_list_for_each_safe(ctrl, tmp, &dpp->controllers,
2384 dl_list_del(&ctrl->list);
2385 dpp_relay_controller_free(ctrl);
2398 struct dpp_relay_controller *ctrl;
2403 dl_list_for_each(ctrl, &dpp->controllers, struct dpp_relay_controller,
2405 if (hostapd_ip_equal(&ctrl->ipaddr, addr)) {
2406 dl_list_del(&ctrl->list);
2407 dpp_relay_controller_free(ctrl);
2426 struct dpp_relay_controller *ctrl;
2441 ctrl = dpp_relay_controller_get_addr(dpp, &addr);
2442 if (!ctrl && dpp->tmp_controller &&
2453 if (!ctrl && !dpp->tmp_controller) {
2455 ctrl = os_zalloc(sizeof(*ctrl));
2456 if (!ctrl)
2458 dl_list_init(&ctrl->conn);
2459 ctrl->global = dpp;
2460 ctrl->ipaddr.af = AF_INET;
2461 ctrl->ipaddr.u.v4.s_addr = addr.sin_addr.s_addr;
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;
2468 if (!ctrl) {
2474 if (dl_list_len(&ctrl->conn) >= 15) {
2484 conn->global = ctrl->global;
2485 conn->relay = ctrl;
2486 conn->msg_ctx = ctrl->msg_ctx;
2487 conn->cb_ctx = ctrl->global->cb_ctx;
2504 dl_list_add(&ctrl->conn, &conn->list);