diff --git a/wifi/drivers/connmanctl.c b/wifi/drivers/connmanctl.c index 258b745a5e..08db861588 100644 --- a/wifi/drivers/connmanctl.c +++ b/wifi/drivers/connmanctl.c @@ -13,17 +13,16 @@ * If not, see . */ +#include +#include + #include "../wifi_driver.h" #include "../../runloop.h" -#include -#include static struct string_list* lines; -static void *connmanctl_init(const char *device, uint64_t caps, - unsigned width, unsigned height) +static void *connmanctl_init(void) { - (void)device; return (void*)-1; } @@ -43,24 +42,25 @@ static void connmanctl_stop(void *data) (void)data; } -static void connmanctl_scan() +static void connmanctl_scan(void) { - union string_list_elem_attr attr; - attr.i = RARCH_FILETYPE_UNSET; char line[512]; + union string_list_elem_attr attr; + FILE *serv_file = NULL; + + attr.i = RARCH_FILETYPE_UNSET; if (lines) free(lines); lines = string_list_new(); pclose(popen("connmanctl scan wifi", "r")); - FILE* serv_file = popen("connmanctl services", "r"); + serv_file = popen("connmanctl services", "r"); while (fgets (line, 512, serv_file) != NULL) { size_t len = strlen(line); - if (len > 0 && line[len-1] == '\n') { + if (len > 0 && line[len-1] == '\n') line[--len] = '\0'; - } string_list_append(lines, line, attr); } @@ -75,8 +75,9 @@ static void connmanctl_get_ssids(struct string_list* ssids) for (i = 0; i < lines->size; i++) { - const char *line = lines->elems[i].data; char ssid[20]; + const char *line = lines->elems[i].data; + strlcpy(ssid, line+4, sizeof(ssid)); string_list_append(ssids, ssid, attr); } @@ -85,15 +86,19 @@ static void connmanctl_get_ssids(struct string_list* ssids) static bool connmanctl_ssid_is_online(unsigned i) { const char *line = lines->elems[i].data; + if (!line) + return false; return line[2] == 'O'; } static bool connmanctl_connect_ssid(unsigned i) { - const char *line = lines->elems[i].data; + char ln[512]; char service[128]; char command[256]; - char ln[512]; + FILE *file = NULL; + const char *line = lines->elems[i].data; + strlcpy(service, line+25, sizeof(service)); strlcat(command, "connmanctl connect ", sizeof(command)); @@ -102,7 +107,8 @@ static bool connmanctl_connect_ssid(unsigned i) printf("%s\n", command); - FILE* file = popen(command, "r"); + file = popen(command, "r"); + while (fgets (ln, 512, file) != NULL) { printf("%s\n", ln); diff --git a/wifi/drivers/nullwifi.c b/wifi/drivers/nullwifi.c index 239cd23adf..4e80a6e1f0 100644 --- a/wifi/drivers/nullwifi.c +++ b/wifi/drivers/nullwifi.c @@ -15,10 +15,8 @@ #include "../wifi_driver.h" -static void *nullwifi_init(const char *device, uint64_t caps, - unsigned width, unsigned height) +static void *nullwifi_init(void) { - (void)device; return (void*)-1; } @@ -38,7 +36,7 @@ static void nullwifi_stop(void *data) (void)data; } -static void nullwifi_scan() +static void nullwifi_scan(void) { } diff --git a/wifi/wifi_driver.h b/wifi/wifi_driver.h index f408374ec8..bd221425ea 100644 --- a/wifi/wifi_driver.h +++ b/wifi/wifi_driver.h @@ -21,7 +21,6 @@ #include #include -#include #include RETRO_BEGIN_DECLS @@ -46,14 +45,14 @@ enum rarch_wifi_ctl_state typedef struct wifi_driver { - void *(*init)(); + void *(*init)(void); void (*free)(void *data); bool (*start)(void *data); void (*stop)(void *data); - void (*scan)(); + void (*scan)(void); void (*get_ssids)(struct string_list *list); bool (*ssid_is_online)(unsigned i); bool (*connect_ssid)(unsigned i);