WiFi: ask for passphrase

This commit is contained in:
Jean-André Santoni 2016-09-23 13:16:27 +02:00
parent 1e95346f27
commit 4734cb2640
5 changed files with 27 additions and 7 deletions

View File

@ -1489,6 +1489,15 @@ static void menu_input_st_cheat_cb(void *userdata, const char *str)
menu_input_dialog_end();
}
static void menu_input_wifi_cb(void *userdata, const char *passphrase)
{
(void)userdata;
driver_wifi_connect_ssid(0, passphrase);
menu_input_dialog_end();
}
static int action_ok_cheat(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -2861,7 +2870,17 @@ static int action_ok_rdb_entry(const char *path,
static int action_ok_wifi(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
driver_wifi_connect_ssid(idx);
menu_input_ctx_line_t line;
line.label = "Passphrase";
line.label_setting = label;
line.type = type;
line.idx = idx;
line.cb = menu_input_wifi_cb;
if (!menu_input_dialog_start(&line))
return -1;
return 0;
}

View File

@ -91,7 +91,7 @@ static bool connmanctl_ssid_is_online(unsigned i)
return line[2] == 'O';
}
static bool connmanctl_connect_ssid(unsigned i)
static bool connmanctl_connect_ssid(unsigned i, const char* passphrase)
{
char ln[512];
char service[128];
@ -101,6 +101,7 @@ static bool connmanctl_connect_ssid(unsigned i)
strlcpy(service, line+25, sizeof(service));
command[0] = '\0';
strlcat(command, "connmanctl connect ", sizeof(command));
strlcat(command, service, sizeof(command));
strlcat(command, " 2>&1", sizeof(command));

View File

@ -49,7 +49,7 @@ static bool nullwifi_ssid_is_online(unsigned i)
return false;
}
static bool nullwifi_connect_ssid(unsigned i)
static bool nullwifi_connect_ssid(unsigned i, const char* passphrase)
{
return false;
}

View File

@ -111,9 +111,9 @@ bool driver_wifi_ssid_is_online(unsigned i)
return wifi_driver->ssid_is_online(i);
}
bool driver_wifi_connect_ssid(unsigned i)
bool driver_wifi_connect_ssid(unsigned i, const char* passphrase)
{
return wifi_driver->connect_ssid(i);
return wifi_driver->connect_ssid(i, passphrase);
}
bool wifi_driver_ctl(enum rarch_wifi_ctl_state state, void *data)

View File

@ -55,7 +55,7 @@ typedef struct wifi_driver
void (*scan)(void);
void (*get_ssids)(struct string_list *list);
bool (*ssid_is_online)(unsigned i);
bool (*connect_ssid)(unsigned i);
bool (*connect_ssid)(unsigned i, const char* passphrase);
const char *ident;
} wifi_driver_t;
@ -102,7 +102,7 @@ void driver_wifi_get_ssids(struct string_list *list);
bool driver_wifi_ssid_is_online(unsigned i);
bool driver_wifi_connect_ssid(unsigned i);
bool driver_wifi_connect_ssid(unsigned i, const char* passphrase);
bool wifi_driver_ctl(enum rarch_wifi_ctl_state state, void *data);