PATCH: inform upper over layers which peer has accepted config

Eliot Lear lear at lear.ch
Tue Aug 2 06:16:08 PDT 2022


Hi everyone,

This patch might require some discussion and some edits.  It is possible that two or more
devices might get configured at the same time.  In this case, the upper layers may wish
to the status of respective devices.  I have tested the dpp_tcp.c code.  I have NOT
unit tested the dpp_supplicant code (I don't have a test setup for that).

Comments?

Eliot


commit 8e13a537cb3a9918219cf492b56f2223a1dd0734
Author: Eliot Lear <lear at cisco.com>
Date:   Tue Aug 2 14:35:09 2022 +0200

     The upper layers may need to know which peer has just been configured.
     This patch provides the id of the peer for that purpose.
     
     Signed-off-by: Eliot Lear <lear at lear.ch>

diff --git a/src/common/dpp_tcp.c b/src/common/dpp_tcp.c
index f51bc1b81..82daca13e 100644
--- a/src/common/dpp_tcp.c
+++ b/src/common/dpp_tcp.c
@@ -248,7 +248,8 @@ static void dpp_controller_gas_done(struct dpp_connection *conn)
                 return;
         }
  
-       wpa_msg(conn->msg_ctx, MSG_INFO, DPP_EVENT_CONF_SENT "conf_status=%d",
+       wpa_msg(conn->msg_ctx, MSG_INFO, DPP_EVENT_CONF_SENT "peer=%d conf_status=%d",
+               auth->peer_bi->id,
                 auth->conf_resp_status);
         dpp_connection_remove(conn);
  }
@@ -882,7 +883,8 @@ static int dpp_controller_rx_conf_result(struct dpp_connection *conn,
         status = dpp_conf_result_rx(auth, hdr, buf, len);
         if (status == DPP_STATUS_OK && auth->send_conn_status) {
                 wpa_msg(msg_ctx, MSG_INFO, DPP_EVENT_CONF_SENT
-                       "wait_conn_status=1 conf_resp_status=%d",
+                       "peer=%d wait_conn_status=1 conf_resp_status=%d",
+                       auth->peer_bi->id,
                         auth->conf_resp_status);
                 wpa_printf(MSG_DEBUG, "DPP: Wait for Connection Status Result");
                 auth->waiting_conn_status_result = 1;
@@ -896,7 +898,7 @@ static int dpp_controller_rx_conf_result(struct dpp_connection *conn,
         }
         if (status == DPP_STATUS_OK)
                 wpa_msg(msg_ctx, MSG_INFO, DPP_EVENT_CONF_SENT
-                       "conf_resp_status=%d", auth->conf_resp_status);
+                       "peer=%d conf_resp_status=%d", auth->peer_bi->id,auth->conf_resp_status);
         else
                 wpa_msg(msg_ctx, MSG_INFO, DPP_EVENT_CONF_FAILED);
         return -1; /* to remove the completed connection */
diff --git a/wpa_supplicant/dpp_supplicant.c b/wpa_supplicant/dpp_supplicant.c
index 8071eced7..3d3210adc 100644
--- a/wpa_supplicant/dpp_supplicant.c
+++ b/wpa_supplicant/dpp_supplicant.c
@@ -2124,7 +2124,8 @@ static void wpas_dpp_rx_conf_result(struct wpa_supplicant *wpa_s, const u8 *src,
                 int freq;
  
                 wpa_msg(wpa_s, MSG_INFO,
-                       DPP_EVENT_CONF_SENT "wait_conn_status=1 conf_status=%d",
+                       DPP_EVENT_CONF_SENT "peer=%d wait_conn_status=1 conf_status=%d",
+                       auth->peer_bi->id,
                         auth->conf_resp_status);
                 wpa_printf(MSG_DEBUG, "DPP: Wait for Connection Status Result");
                 eloop_cancel_timeout(wpas_dpp_config_result_wait_timeout,
@@ -2145,7 +2146,8 @@ static void wpas_dpp_rx_conf_result(struct wpa_supplicant *wpa_s, const u8 *src,
         offchannel_send_action_done(wpa_s);
         wpas_dpp_listen_stop(wpa_s);
         if (status == DPP_STATUS_OK)
-               wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT "conf_status=%d",
+               wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT "peer=%d conf_status=%d",
+                       auth->peer_bi->id,
                         auth->conf_resp_status);
         else
                 wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_FAILED);
@@ -4196,7 +4198,8 @@ wpas_dpp_gas_status_handler(void *ctx, struct wpabuf *resp, int ok)
         offchannel_send_action_done(wpa_s);
         wpas_dpp_listen_stop(wpa_s);
         if (ok)
-               wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT "conf_status=%d",
+               wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_SENT "peer=%d conf_status=%d",
+                       auth->peer_bi->id,
                         auth->conf_resp_status);
         else
                 wpa_msg(wpa_s, MSG_INFO, DPP_EVENT_CONF_FAILED);

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x87B66B46D9D27A33.asc
Type: application/pgp-keys
Size: 5052 bytes
Desc: OpenPGP public key
URL: <http://lists.infradead.org/pipermail/hostap/attachments/20220802/61196e51/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/hostap/attachments/20220802/61196e51/attachment.sig>


More information about the Hostap mailing list