Browse Source

D-Bus/P2P: Support all discovery types

The default discovery type is to search for devices only on social
channels. Expand this to also support an initial full scan followed by the
scan of social channels as well as the progressive scan that scans through
all the channels in the Search state rounds. This does not change the
default of scanning only social channels although there is currently a
discrepancy wrt the default used by wpa_cli, which is the full scan first.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Angie Chinchilla <angie.v.chinchilla@intel.com>
Reinette Chatre 13 years ago
parent
commit
1755b61679
1 changed files with 10 additions and 1 deletions
  1. 10 1
      wpa_supplicant/dbus/dbus_new_handlers_p2p.c

+ 10 - 1
wpa_supplicant/dbus/dbus_new_handlers_p2p.c

@@ -114,8 +114,17 @@ DBusMessage * wpas_dbus_handler_p2p_find(DBusMessage *message,
 					  wpabuf_head(entry.binarray_value[i]),
 					  wpabuf_head(entry.binarray_value[i]),
 					  WPS_DEV_TYPE_LEN);
 					  WPS_DEV_TYPE_LEN);
 			}
 			}
-
 			num_req_dev_types = entry.array_len;
 			num_req_dev_types = entry.array_len;
+		} else if (!os_strcmp(entry.key, "DiscoveryType") &&
+			   (entry.type == DBUS_TYPE_STRING)) {
+			if (!os_strcmp(entry.str_value, "start_with_full"))
+				type = P2P_FIND_START_WITH_FULL;
+			else if (!os_strcmp(entry.str_value, "social"))
+				type = P2P_FIND_ONLY_SOCIAL;
+			else if (!os_strcmp(entry.str_value, "progressive"))
+				type = P2P_FIND_PROGRESSIVE;
+			else
+				goto error_clear;
 		} else
 		} else
 			goto error_clear;
 			goto error_clear;
 		wpa_dbus_dict_entry_clear(&entry);
 		wpa_dbus_dict_entry_clear(&entry);