Update command handler process() callback return value type

The partial move from returning int to returning enum sigma_cmd_result
was problematic for LLVM/Clang Control Flow Integrity (CFI) sanitizer.
With CFI, the function pointers are verified to have the same type as
the actual callback function and enum is not considered to match int in
that context. This results in sigma_dut terminating if CFI is enabled
for the build. Avoid this by updating the process() callback functions
to use the exact same type as the function pointer.

This was done with following semantic patch and manual cleanup to remove
functions that matched but were not used as registered callbacks (those
functions can be addressed separately as cleanup since they do not cause
issues with CFI) and with coding style cleanup for indentation.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
diff --git a/ap.c b/ap.c
index 0c71c94..ea0f071 100644
--- a/ap.c
+++ b/ap.c
@@ -128,8 +128,9 @@
 }
 
 
-static int cmd_ap_ca_version(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_ca_version(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	send_resp(dut, conn, SIGMA_COMPLETE, "version,1.0");
@@ -457,8 +458,9 @@
 }
 
 
-static int cmd_ap_set_wireless(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_wireless(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *ifname = get_param(cmd, "INTERFACE"); */
@@ -1719,8 +1721,9 @@
 }
 
 
-static int cmd_ap_send_addba_req(struct sigma_dut *dut, struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_send_addba_req(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *ifname = get_param(cmd, "INTERFACE"); */
@@ -1760,8 +1763,9 @@
 }
 
 
-static int cmd_ap_set_security(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_security(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	const char *val;
@@ -2142,8 +2146,9 @@
 }
 
 
-static int cmd_ap_set_radius(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_radius(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	const char *val;
@@ -3909,8 +3914,9 @@
 }
 
 
-static int cmd_ap_reboot(struct sigma_dut *dut, struct sigma_conn *conn,
-			 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_reboot(struct sigma_dut *dut,
+					   struct sigma_conn *conn,
+					   struct sigma_cmd *cmd)
 {
 	switch (get_driver_type()) {
 	case DRIVER_ATHEROS:
@@ -6516,8 +6522,9 @@
 }
 
 
-int cmd_ap_config_commit(struct sigma_dut *dut, struct sigma_conn *conn,
-			 struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_ap_config_commit(struct sigma_dut *dut,
+					   struct sigma_conn *conn,
+					   struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	FILE *f;
@@ -7635,8 +7642,9 @@
 }
 
 
-static int cmd_ap_set_apqos(struct sigma_dut *dut, struct sigma_conn *conn,
-			    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_apqos(struct sigma_dut *dut,
+					      struct sigma_conn *conn,
+					      struct sigma_cmd *cmd)
 {
 	/* TXOP: The values provided here for VHT5G only */
 	if (!parse_qos_params(dut, conn, &dut->ap_qos[AP_AC_VO],
@@ -7669,8 +7677,9 @@
 }
 
 
-static int cmd_ap_set_staqos(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_staqos(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	if (!parse_qos_params(dut, conn, &dut->ap_sta_qos[AP_AC_VO],
 			      get_param(cmd, "cwmin_VO"),
@@ -7784,8 +7793,9 @@
 }
 
 
-static int cmd_ap_reset_default(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_reset_default(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *type, *program;
 	enum driver_type drv;
@@ -8199,8 +8209,9 @@
 }
 
 
-static int cmd_ap_get_info(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_get_info(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	struct stat s;
@@ -8322,8 +8333,9 @@
 }
 
 
-static int cmd_ap_deauth_sta(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_deauth_sta(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *ifname = get_param(cmd, "INTERFACE"); */
@@ -9110,8 +9122,9 @@
 }
 
 
-int cmd_ap_send_frame(struct sigma_dut *dut, struct sigma_conn *conn,
-		      struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_ap_send_frame(struct sigma_dut *dut,
+					struct sigma_conn *conn,
+					struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *ifname = get_param(cmd, "INTERFACE"); */
@@ -9202,9 +9215,9 @@
 }
 
 
-static int cmd_ap_get_mac_address(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_get_mac_address(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 #if defined( __linux__)
 	/* const char *name = get_param(cmd, "NAME"); */
@@ -9285,8 +9298,9 @@
 }
 
 
-static int cmd_ap_set_pmf(struct sigma_dut *dut, struct sigma_conn *conn,
-			  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_pmf(struct sigma_dut *dut,
+					    struct sigma_conn *conn,
+					    struct sigma_cmd *cmd)
 {
 	/*
 	 * Ignore the command since the parameters are already handled through
@@ -9297,8 +9311,9 @@
 }
 
 
-static int cmd_ap_set_hs2(struct sigma_dut *dut, struct sigma_conn *conn,
-			  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_hs2(struct sigma_dut *dut,
+					    struct sigma_conn *conn,
+					    struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *ifname = get_param(cmd, "INTERFACE"); */
@@ -9896,8 +9911,9 @@
 }
 
 
-static int cmd_ap_nfc_action(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_nfc_action(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "Name"); */
 	/* const char *intf = get_param(cmd, "Interface"); */
@@ -9920,8 +9936,9 @@
 }
 
 
-static int cmd_ap_wps_read_pin(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_wps_read_pin(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	char *pin = "12345670"; /* TODO: use random PIN */
 	char resp[100];
@@ -9933,8 +9950,9 @@
 }
 
 
-static int cmd_ap_wps_enter_pin(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_wps_enter_pin(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *pin = get_param(cmd, "PIN");
 	char wps_pin[11];
@@ -9955,8 +9973,9 @@
 }
 
 
-static int cmd_ap_wps_set_pbc(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_wps_set_pbc(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	sigma_dut_print(dut, DUT_MSG_DEBUG,
 			"Selecting the push button configuration method");
@@ -10004,8 +10023,9 @@
 }
 
 
-static int cmd_ap_get_parameter(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_get_parameter(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	char value[256], resp[512];
 	const char *param = get_param(cmd, "parameter");
@@ -10558,8 +10578,9 @@
 #endif /* __linux__ */
 
 
-static int cmd_ap_set_rfeature(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_ap_set_rfeature(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	/* const char *type = get_param(cmd, "Type"); */
@@ -10593,17 +10614,18 @@
 }
 
 
-static int cmd_accesspoint(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_accesspoint(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	/* const char *name = get_param(cmd, "NAME"); */
 	return 1;
 }
 
 
-static int cmd_ap_preset_testparameters(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_ap_preset_testparameters(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	const char *val;
 
diff --git a/miracast.c b/miracast.c
index 08a2487..3068d3a 100644
--- a/miracast.c
+++ b/miracast.c
@@ -970,9 +970,9 @@
 }
 
 
-static int cmd_start_wfd_connection(struct sigma_dut *dut,
-				    struct sigma_conn *conn,
-				    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_start_wfd_connection(struct sigma_dut *dut,
+						      struct sigma_conn *conn,
+						      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *peer_address = get_param(cmd, "PeerAddress");
@@ -1249,9 +1249,9 @@
 }
 
 
-static int cmd_connect_go_start_wfd(struct sigma_dut *dut,
-				    struct sigma_conn *conn,
-				    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_connect_go_start_wfd(struct sigma_dut *dut,
+						      struct sigma_conn *conn,
+						      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *p2p_dev_id = get_param(cmd, "P2PdevID");
@@ -1398,9 +1398,9 @@
 }
 
 
-static int cmd_sta_generate_event(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_generate_event(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 
 	/* const char *intf = get_param(cmd, "Interface"); */
@@ -1449,9 +1449,9 @@
 }
 
 
-static int cmd_reinvoke_wfd_session(struct sigma_dut *dut,
-				    struct sigma_conn *conn,
-				    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_reinvoke_wfd_session(struct sigma_dut *dut,
+						      struct sigma_conn *conn,
+						      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *grp_id = get_param(cmd, "GroupID");
diff --git a/p2p.c b/p2p.c
index 6d0fe3d..177af4a 100644
--- a/p2p.c
+++ b/p2p.c
@@ -633,9 +633,9 @@
 }
 
 
-static int cmd_sta_get_p2p_dev_address(struct sigma_dut *dut,
-				       struct sigma_conn *conn,
-				       struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_get_p2p_dev_address(struct sigma_dut *dut, struct sigma_conn *conn,
+			    struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "interface");
 	char buf[100], resp[200];
@@ -652,8 +652,9 @@
 }
 
 
-static int cmd_sta_set_p2p(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_p2p(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	const char *intf = get_p2p_ifname(get_param(cmd, "Interface"));
 	char buf[256];
@@ -851,9 +852,9 @@
 }
 
 
-static int cmd_sta_start_autonomous_go(struct sigma_dut *dut,
-				       struct sigma_conn *conn,
-				       struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_start_autonomous_go(struct sigma_dut *dut, struct sigma_conn *conn,
+			    struct sigma_cmd *cmd)
 {
 	const char *intf = get_p2p_ifname(get_param(cmd, "Interface"));
 	const char *oper_chn = get_param(cmd, "OPER_CHN");
@@ -995,8 +996,9 @@
 }
 
 
-static int cmd_sta_p2p_connect(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_p2p_connect(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *intf = get_p2p_ifname(get_param(cmd, "Interface"));
 	const char *devid = get_param(cmd, "P2PDevID");
@@ -1118,9 +1120,10 @@
 				     const char *intf, const char *peer_role,
 				     int nfc);
 
-static int cmd_sta_p2p_start_group_formation(struct sigma_dut *dut,
-					     struct sigma_conn *conn,
-					     struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_p2p_start_group_formation(struct sigma_dut *dut,
+				  struct sigma_conn *conn,
+				  struct sigma_cmd *cmd)
 {
 	const char *intf = get_p2p_ifname(get_param(cmd, "Interface"));
 	const char *devid = get_param(cmd, "P2PDevID");
@@ -1415,8 +1418,9 @@
 }
 
 
-static int cmd_sta_p2p_dissolve(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_p2p_dissolve(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "interface");
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1449,9 +1453,9 @@
 }
 
 
-static int cmd_sta_send_p2p_invitation_req(struct sigma_dut *dut,
-					   struct sigma_conn *conn,
-					   struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_send_p2p_invitation_req(struct sigma_dut *dut, struct sigma_conn *conn,
+				struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "interface");
 	const char *devid = get_param(cmd, "P2PDevID");
@@ -1541,9 +1545,10 @@
 }
 
 
-static int cmd_sta_accept_p2p_invitation_req(struct sigma_dut *dut,
-					     struct sigma_conn *conn,
-					     struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_accept_p2p_invitation_req(struct sigma_dut *dut,
+				  struct sigma_conn *conn,
+				  struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *devid = get_param(cmd, "P2PDevID");
@@ -1585,9 +1590,10 @@
 }
 
 
-static int cmd_sta_send_p2p_provision_dis_req(struct sigma_dut *dut,
-					      struct sigma_conn *conn,
-					      struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_send_p2p_provision_dis_req(struct sigma_dut *dut,
+				   struct sigma_conn *conn,
+				   struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "interface");
 	const char *conf_method = get_param(cmd, "ConfigMethod");
@@ -1630,8 +1636,9 @@
 }
 
 
-static int cmd_sta_set_wps_pbc(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_wps_pbc(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1652,8 +1659,9 @@
 }
 
 
-static int cmd_sta_wps_read_pin(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_wps_read_pin(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1691,9 +1699,9 @@
 }
 
 
-static int cmd_sta_wps_read_label(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_wps_read_label(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1722,9 +1730,9 @@
 }
 
 
-static int cmd_sta_wps_enter_pin(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_wps_enter_pin(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1754,8 +1762,9 @@
 }
 
 
-static int cmd_sta_get_psk(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_psk(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "interface"); */
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1790,8 +1799,9 @@
 }
 
 
-int cmd_sta_p2p_reset(struct sigma_dut *dut, struct sigma_conn *conn,
-		      struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_sta_p2p_reset(struct sigma_dut *dut,
+					struct sigma_conn *conn,
+					struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "interface");
 	struct wfa_cs_p2p_group *grp, *prev;
@@ -1869,9 +1879,9 @@
 }
 
 
-static int cmd_sta_get_p2p_ip_config(struct sigma_dut *dut,
-				     struct sigma_conn *conn,
-				     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_p2p_ip_config(struct sigma_dut *dut,
+						       struct sigma_conn *conn,
+						       struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *grpid = get_param(cmd, "GroupID");
@@ -1949,9 +1959,9 @@
 }
 
 
-static int cmd_sta_send_p2p_presence_req(struct sigma_dut *dut,
-					 struct sigma_conn *conn,
-					 struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_send_p2p_presence_req(struct sigma_dut *dut, struct sigma_conn *conn,
+			      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *dur = get_param(cmd, "Duration");
@@ -1974,8 +1984,9 @@
 }
 
 
-static int cmd_sta_set_sleep(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_sleep(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	struct wfa_cs_p2p_group *grp;
@@ -2030,9 +2041,9 @@
 }
 
 
-static int cmd_sta_set_opportunistic_ps(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_set_opportunistic_ps(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	struct wfa_cs_p2p_group *grp;
@@ -2067,9 +2078,10 @@
 }
 
 
-static int cmd_sta_send_service_discovery_req(struct sigma_dut *dut,
-					      struct sigma_conn *conn,
-					      struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_send_service_discovery_req(struct sigma_dut *dut,
+				   struct sigma_conn *conn,
+				   struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *devid = get_param(cmd, "P2PDevID");
@@ -2089,9 +2101,9 @@
 }
 
 
-static int cmd_sta_add_arp_table_entry(struct sigma_dut *dut,
-				       struct sigma_conn *conn,
-				       struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_add_arp_table_entry(struct sigma_dut *dut, struct sigma_conn *conn,
+			    struct sigma_cmd *cmd)
 {
 	char buf[256];
 	char *ifname;
@@ -2129,9 +2141,9 @@
 }
 
 
-static int cmd_sta_block_icmp_response(struct sigma_dut *dut,
-				       struct sigma_conn *conn,
-				       struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_block_icmp_response(struct sigma_dut *dut, struct sigma_conn *conn,
+			    struct sigma_cmd *cmd)
 {
 	char buf[256];
 	struct wfa_cs_p2p_group *grp;
@@ -2839,8 +2851,9 @@
 }
 
 
-static int cmd_sta_nfc_action(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_nfc_action(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *oper = get_param(cmd, "Operation");
diff --git a/sta.c b/sta.c
index 04dc9cb..68d0491 100644
--- a/sta.c
+++ b/sta.c
@@ -1099,9 +1099,9 @@
 }
 
 
-static int cmd_sta_get_ip_config(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_ip_config(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -1374,9 +1374,9 @@
 }
 
 
-static int cmd_sta_set_ip_config(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_ip_config(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -1545,8 +1545,9 @@
 }
 
 
-static int cmd_sta_get_info(struct sigma_dut *dut, struct sigma_conn *conn,
-			    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_info(struct sigma_dut *dut,
+					      struct sigma_conn *conn,
+					      struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	/* TODO: could report more details here */
@@ -1555,9 +1556,9 @@
 }
 
 
-static int cmd_sta_get_mac_address(struct sigma_dut *dut,
-				   struct sigma_conn *conn,
-				   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_mac_address(struct sigma_dut *dut,
+						     struct sigma_conn *conn,
+						     struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	char addr[20], resp[50];
@@ -1575,8 +1576,9 @@
 }
 
 
-static int cmd_sta_is_connected(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_is_connected(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	int connected = 0;
@@ -1601,9 +1603,9 @@
 }
 
 
-static int cmd_sta_verify_ip_connection(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_verify_ip_connection(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *dst, *timeout;
@@ -1638,8 +1640,9 @@
 }
 
 
-static int cmd_sta_get_bssid(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_bssid(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	char bssid[20], resp[50];
@@ -1710,9 +1713,9 @@
 }
 
 
-static int cmd_sta_set_encryption(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_encryption(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ssid = get_param(cmd, "ssid");
@@ -2038,8 +2041,9 @@
 }
 
 
-static int cmd_sta_set_psk(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_psk(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *type = get_param(cmd, "Type");
@@ -2367,8 +2371,9 @@
 }
 
 
-static int cmd_sta_set_eaptls(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eaptls(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname, *val;
@@ -2493,8 +2498,9 @@
 }
 
 
-static int cmd_sta_set_eapttls(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eapttls(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -2528,8 +2534,9 @@
 }
 
 
-static int cmd_sta_set_eapsim(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eapsim(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -2554,8 +2561,9 @@
 }
 
 
-static int cmd_sta_set_peap(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_peap(struct sigma_dut *dut,
+					      struct sigma_conn *conn,
+					      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname, *val;
@@ -2605,8 +2613,9 @@
 }
 
 
-static int cmd_sta_set_eapfast(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eapfast(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname, *val;
@@ -2664,8 +2673,9 @@
 }
 
 
-static int cmd_sta_set_eapaka(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eapaka(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -2690,9 +2700,9 @@
 }
 
 
-static int cmd_sta_set_eapakaprime(struct sigma_dut *dut,
-				   struct sigma_conn *conn,
-				   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_eapakaprime(struct sigma_dut *dut,
+						     struct sigma_conn *conn,
+						     struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *ifname;
@@ -2786,8 +2796,9 @@
 }
 
 
-static int cmd_sta_set_security(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_security(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *type = get_param(cmd, "Type");
 
@@ -2887,8 +2898,9 @@
 }
 
 
-static int cmd_sta_set_uapsd(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_uapsd(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	/* const char *ssid = get_param(cmd, "ssid"); */
@@ -2948,8 +2960,9 @@
 }
 
 
-static int cmd_sta_set_wmm(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_wmm(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	char buf[1000];
 	const char *intf = get_param(cmd, "Interface");
@@ -3212,8 +3225,9 @@
 #endif /* NL80211_SUPPORT */
 
 
-static int cmd_sta_associate(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_associate(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	/* const char *intf = get_param(cmd, "Interface"); */
 	const char *ssid = get_param(cmd, "ssid");
@@ -4548,9 +4562,9 @@
 #endif /* NL80211_SUPPORT */
 
 
-static int cmd_sta_preset_testparameters(struct sigma_dut *dut,
-					 struct sigma_conn *conn,
-					 struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_preset_testparameters(struct sigma_dut *dut, struct sigma_conn *conn,
+			      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val;
@@ -6069,8 +6083,9 @@
 }
 
 
-static int cmd_sta_disconnect(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_disconnect(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val = get_param(cmd, "maintain_profile");
@@ -6091,8 +6106,9 @@
 }
 
 
-static int cmd_sta_reassoc(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_reassoc(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *bssid = get_param(cmd, "bssid");
@@ -6415,8 +6431,9 @@
 }
 
 
-static int cmd_sta_get_parameter(struct sigma_dut *dut, struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_parameter(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	const char *program = get_param(cmd, "Program");
 
@@ -7422,9 +7439,9 @@
 }
 
 
-static int cmd_sta_reset_default(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_reset_default(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	int cmd_sta_p2p_reset(struct sigma_dut *dut, struct sigma_conn *conn,
 			      struct sigma_cmd *cmd);
@@ -7675,8 +7692,9 @@
 }
 
 
-static int cmd_sta_get_events(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_events(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *program = get_param(cmd, "Program");
 
@@ -7757,8 +7775,9 @@
 }
 
 
-static int cmd_sta_exec_action(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_exec_action(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *program = get_param(cmd, "Prog");
 
@@ -7780,8 +7799,9 @@
 }
 
 
-static int cmd_sta_set_11n(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_11n(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val, *mcs32, *rate;
@@ -8687,8 +8707,9 @@
 }
 
 
-static int cmd_sta_set_wireless(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_wireless(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *val;
 
@@ -9022,8 +9043,9 @@
 }
 
 
-static int cmd_sta_send_addba(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_send_addba(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	switch (get_driver_type()) {
 	case DRIVER_ATHEROS:
@@ -10539,8 +10561,9 @@
 }
 
 
-int cmd_sta_send_frame(struct sigma_dut *dut, struct sigma_conn *conn,
-		       struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_sta_send_frame(struct sigma_dut *dut,
+					 struct sigma_conn *conn,
+					 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val;
@@ -10773,8 +10796,9 @@
 }
 
 
-static int cmd_sta_set_macaddr(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_macaddr(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *mac = get_param(cmd, "MAC");
@@ -11682,8 +11706,9 @@
 }
 
 
-static int cmd_sta_set_rfeature(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_rfeature(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *prog = get_param(cmd, "Prog");
@@ -11727,8 +11752,9 @@
 }
 
 
-static int cmd_sta_set_radio(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_radio(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *mode = get_param(cmd, "Mode");
@@ -11754,8 +11780,9 @@
 }
 
 
-static int cmd_sta_set_pwrsave(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_pwrsave(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *mode = get_param(cmd, "Mode");
@@ -11798,8 +11825,9 @@
 }
 
 
-static int cmd_sta_bssid_pool(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_bssid_pool(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val, *bssid;
@@ -11841,8 +11869,9 @@
 }
 
 
-static int cmd_sta_reset_parm(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_reset_parm(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val;
@@ -11857,8 +11886,9 @@
 }
 
 
-static int cmd_sta_get_key(struct sigma_dut *dut, struct sigma_conn *conn,
-			   struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_get_key(struct sigma_dut *dut,
+					     struct sigma_conn *conn,
+					     struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *key_type = get_param(cmd, "KeyType");
@@ -11908,9 +11938,9 @@
 }
 
 
-static int cmd_sta_hs2_associate(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_hs2_associate(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val = get_param(cmd, "Ignore_blacklist");
@@ -12029,9 +12059,9 @@
 }
 
 
-static int cmd_sta_hs2_venue_info(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_hs2_venue_info(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *display = get_param(cmd, "Display");
@@ -12412,9 +12442,9 @@
 }
 
 
-static int cmd_sta_add_credential(struct sigma_dut *dut,
-				  struct sigma_conn *conn,
-				  struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_add_credential(struct sigma_dut *dut,
+						    struct sigma_conn *conn,
+						    struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *type;
@@ -12440,8 +12470,9 @@
 }
 
 
-static int cmd_sta_scan(struct sigma_dut *dut, struct sigma_conn *conn,
-			struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_scan(struct sigma_dut *dut,
+					  struct sigma_conn *conn,
+					  struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *val, *bssid, *ssid;
@@ -12510,8 +12541,9 @@
 }
 
 
-static int cmd_sta_scan_bss(struct sigma_dut *dut, struct sigma_conn *conn,
-			    struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_scan_bss(struct sigma_dut *dut,
+					      struct sigma_conn *conn,
+					      struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *bssid;
@@ -12589,8 +12621,9 @@
 }
 
 
-static int cmd_sta_set_systime(struct sigma_dut *dut, struct sigma_conn *conn,
-			       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_set_systime(struct sigma_dut *dut,
+						 struct sigma_conn *conn,
+						 struct sigma_cmd *cmd)
 {
 #ifdef __linux__
 	struct timeval tv;
@@ -12658,8 +12691,9 @@
 }
 
 
-static int cmd_sta_osu(struct sigma_dut *dut, struct sigma_conn *conn,
-		       struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_osu(struct sigma_dut *dut,
+					 struct sigma_conn *conn,
+					 struct sigma_cmd *cmd)
 {
 	const char *intf = get_param(cmd, "Interface");
 	const char *name, *osu_ssid, *val;
@@ -12756,8 +12790,9 @@
 }
 
 
-static int cmd_sta_policy_update(struct sigma_dut *dut, struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_policy_update(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	const char *val;
 	int timeout = 120;
@@ -12787,8 +12822,9 @@
 }
 
 
-static int cmd_sta_er_config(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_sta_er_config(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	struct wpa_ctrl *ctrl;
 	const char *intf = get_param(cmd, "Interface");
@@ -12879,9 +12915,9 @@
 }
 
 
-static int cmd_sta_wps_connect_pw_token(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_sta_wps_connect_pw_token(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	struct wpa_ctrl *ctrl;
 	const char *intf = get_param(cmd, "Interface");
@@ -12915,9 +12951,9 @@
 }
 
 
-static int cmd_start_wps_registration(struct sigma_dut *dut,
-				      struct sigma_conn *conn,
-				      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_start_wps_registration(struct sigma_dut *dut,
+							struct sigma_conn *conn,
+							struct sigma_cmd *cmd)
 {
 	struct wpa_ctrl *ctrl;
 	const char *intf = get_param(cmd, "Interface");
diff --git a/wlantest.c b/wlantest.c
index cdd7ef9..25700d9 100644
--- a/wlantest.c
+++ b/wlantest.c
@@ -162,8 +162,9 @@
 }
 
 
-static int cmd_wlantest_version(struct sigma_dut *dut, struct sigma_conn *conn,
-				struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_wlantest_version(struct sigma_dut *dut,
+						  struct sigma_conn *conn,
+						  struct sigma_cmd *cmd)
 {
 	int s;
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
@@ -203,8 +204,9 @@
 }
 
 
-int cmd_wlantest_set_channel(struct sigma_dut *dut, struct sigma_conn *conn,
-			     struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_wlantest_set_channel(struct sigma_dut *dut,
+					       struct sigma_conn *conn,
+					       struct sigma_cmd *cmd)
 {
 	char buf[100];
 	const char *chan;
@@ -258,15 +260,17 @@
 }
 
 
-static int cmd_wlantest_flush(struct sigma_dut *dut, struct sigma_conn *conn,
-			      struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_wlantest_flush(struct sigma_dut *dut,
+						struct sigma_conn *conn,
+						struct sigma_cmd *cmd)
 {
 	return run_wlantest_simple(dut, conn, WLANTEST_CTRL_FLUSH);
 }
 
 
-int cmd_wlantest_send_frame(struct sigma_dut *dut, struct sigma_conn *conn,
-			    struct sigma_cmd *cmd)
+enum sigma_cmd_result cmd_wlantest_send_frame(struct sigma_dut *dut,
+					      struct sigma_conn *conn,
+					      struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -387,9 +391,9 @@
 }
 
 
-static int cmd_wlantest_add_passphrase(struct sigma_dut *dut,
-				       struct sigma_conn *conn,
-				       struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_add_passphrase(struct sigma_dut *dut, struct sigma_conn *conn,
+			    struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -438,9 +442,9 @@
 }
 
 
-static int cmd_wlantest_clear_sta_counters(struct sigma_dut *dut,
-					   struct sigma_conn *conn,
-					   struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_clear_sta_counters(struct sigma_dut *dut, struct sigma_conn *conn,
+				struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -493,9 +497,9 @@
 }
 
 
-static int cmd_wlantest_clear_bss_counters(struct sigma_dut *dut,
-					   struct sigma_conn *conn,
-					   struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_clear_bss_counters(struct sigma_dut *dut, struct sigma_conn *conn,
+				struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -535,9 +539,9 @@
 }
 
 
-static int cmd_wlantest_clear_tdls_counters(struct sigma_dut *dut,
-					    struct sigma_conn *conn,
-					    struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_clear_tdls_counters(struct sigma_dut *dut, struct sigma_conn *conn,
+				 struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -658,9 +662,9 @@
 	{ NULL, 0 }
 };
 
-static int cmd_wlantest_get_sta_counter(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_get_sta_counter(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -748,9 +752,9 @@
 	{ NULL, 0 }
 };
 
-static int cmd_wlantest_get_bss_counter(struct sigma_dut *dut,
-					struct sigma_conn *conn,
-					struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_get_bss_counter(struct sigma_dut *dut, struct sigma_conn *conn,
+			     struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -829,9 +833,9 @@
 	{ NULL, 0 }
 };
 
-static int cmd_wlantest_get_tdls_counter(struct sigma_dut *dut,
-					 struct sigma_conn *conn,
-					 struct sigma_cmd *cmd)
+static enum sigma_cmd_result
+cmd_wlantest_get_tdls_counter(struct sigma_dut *dut, struct sigma_conn *conn,
+			      struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -933,9 +937,9 @@
 	{ NULL, 0 }
 };
 
-static int cmd_wlantest_info_sta(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_wlantest_info_sta(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;
@@ -1029,9 +1033,9 @@
 	{ NULL, 0 }
 };
 
-static int cmd_wlantest_info_bss(struct sigma_dut *dut,
-				 struct sigma_conn *conn,
-				 struct sigma_cmd *cmd)
+static enum sigma_cmd_result cmd_wlantest_info_bss(struct sigma_dut *dut,
+						   struct sigma_conn *conn,
+						   struct sigma_cmd *cmd)
 {
 	u8 resp[WLANTEST_CTRL_MAX_RESP_LEN];
 	u8 buf[100], *end, *pos;