D-Bus: Add 'freq' option to P2P Find method to specify starting channel
This allows user to start P2P Find/Scan on a particular frequency and then move to scanning social channels. This support is already present on control socket. Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
This commit is contained in:
parent
74d29544f1
commit
4e118c847b
2 changed files with 7 additions and 1 deletions
|
@ -1297,6 +1297,7 @@ Interface for performing P2P (Wi-Fi Peer-to-Peer) P2P Device operations.
|
||||||
<tr><td>Timeout</td><td>i</td><td>Timeout for operating in seconds</td><td>no</td></tr>
|
<tr><td>Timeout</td><td>i</td><td>Timeout for operating in seconds</td><td>no</td></tr>
|
||||||
<tr><td>RequestedDeviceTypes</td><td>aay</td><td>WPS Device Types to search for</td><td>no</td></tr>
|
<tr><td>RequestedDeviceTypes</td><td>aay</td><td>WPS Device Types to search for</td><td>no</td></tr>
|
||||||
<tr><td>DiscoveryType</td><td>s</td><td>"start_with_full" (default, if not specified), "social", "progressive"</td><td>no</td></tr>
|
<tr><td>DiscoveryType</td><td>s</td><td>"start_with_full" (default, if not specified), "social", "progressive"</td><td>no</td></tr>
|
||||||
|
<tr><td>freq</td><td>i</td><td>Initial scan channel (frequency in MHz) for the start_with_full case to limit the initial scan to the specified channel</td><td>no</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
|
@ -90,6 +90,7 @@ DBusMessage * wpas_dbus_handler_p2p_find(DBusMessage *message,
|
||||||
int num_req_dev_types = 0;
|
int num_req_dev_types = 0;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
u8 *req_dev_types = NULL;
|
u8 *req_dev_types = NULL;
|
||||||
|
unsigned int freq = 0;
|
||||||
|
|
||||||
dbus_message_iter_init(message, &iter);
|
dbus_message_iter_init(message, &iter);
|
||||||
entry.key = NULL;
|
entry.key = NULL;
|
||||||
|
@ -134,6 +135,10 @@ DBusMessage * wpas_dbus_handler_p2p_find(DBusMessage *message,
|
||||||
type = P2P_FIND_PROGRESSIVE;
|
type = P2P_FIND_PROGRESSIVE;
|
||||||
else
|
else
|
||||||
goto error_clear;
|
goto error_clear;
|
||||||
|
} else if (os_strcmp(entry.key, "freq") == 0 &&
|
||||||
|
(entry.type == DBUS_TYPE_INT32 ||
|
||||||
|
entry.type == DBUS_TYPE_UINT32)) {
|
||||||
|
freq = entry.uint32_value;
|
||||||
} else
|
} else
|
||||||
goto error_clear;
|
goto error_clear;
|
||||||
wpa_dbus_dict_entry_clear(&entry);
|
wpa_dbus_dict_entry_clear(&entry);
|
||||||
|
@ -142,7 +147,7 @@ DBusMessage * wpas_dbus_handler_p2p_find(DBusMessage *message,
|
||||||
wpa_s = wpa_s->global->p2p_init_wpa_s;
|
wpa_s = wpa_s->global->p2p_init_wpa_s;
|
||||||
|
|
||||||
wpas_p2p_find(wpa_s, timeout, type, num_req_dev_types, req_dev_types,
|
wpas_p2p_find(wpa_s, timeout, type, num_req_dev_types, req_dev_types,
|
||||||
NULL, 0, 0, NULL, 0);
|
NULL, 0, 0, NULL, freq);
|
||||||
os_free(req_dev_types);
|
os_free(req_dev_types);
|
||||||
return reply;
|
return reply;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue