mirror of
https://github.com/albfan/miraclecast.git
synced 2025-03-09 23:38:56 +00:00
Customizable config_methods
This commit is contained in:
parent
34595f035e
commit
5bfc97a72c
4 changed files with 42 additions and 5 deletions
|
@ -129,6 +129,7 @@ void link_free(struct link *l)
|
||||||
free(l->wfd_subelements);
|
free(l->wfd_subelements);
|
||||||
free(l->friendly_name);
|
free(l->friendly_name);
|
||||||
free(l->ifname);
|
free(l->ifname);
|
||||||
|
free(l->config_methods);
|
||||||
free(l);
|
free(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +143,22 @@ bool link_is_using_dev(struct link *l)
|
||||||
return l->use_dev;
|
return l->use_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int link_set_config_methods(struct link *l, char *config_methods)
|
||||||
|
{
|
||||||
|
char *cm;
|
||||||
|
|
||||||
|
if (!config_methods)
|
||||||
|
return log_EINVAL();
|
||||||
|
|
||||||
|
cm = strdup(config_methods);
|
||||||
|
if (!cm)
|
||||||
|
return log_ENOMEM();
|
||||||
|
|
||||||
|
free(l->config_methods);
|
||||||
|
l->config_methods = config_methods;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void link_set_managed(struct link *l, bool set)
|
void link_set_managed(struct link *l, bool set)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
|
@ -2597,10 +2597,9 @@ static int supplicant_write_config(struct supplicant *s)
|
||||||
"driver_param=%s\n"
|
"driver_param=%s\n"
|
||||||
"ap_scan=%s\n"
|
"ap_scan=%s\n"
|
||||||
"# End of configuration\n",
|
"# End of configuration\n",
|
||||||
s->l->friendly_name ? : "unknown",
|
s->l->friendly_name ?: "unknown",
|
||||||
"1-0050F204-1",
|
"1-0050F204-1",
|
||||||
"pbc",
|
s->l->config_methods ?: "pbc",
|
||||||
//"pbc keypad pin display",
|
|
||||||
"p2p_device=1",
|
"p2p_device=1",
|
||||||
"1");
|
"1");
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
const char *interface_name = NULL;
|
const char *interface_name = NULL;
|
||||||
|
const char *config_methods = NULL;
|
||||||
unsigned int arg_wpa_loglevel = LOG_NOTICE;
|
unsigned int arg_wpa_loglevel = LOG_NOTICE;
|
||||||
bool use_dev = false;
|
bool use_dev = false;
|
||||||
|
|
||||||
|
@ -102,6 +103,7 @@ static void manager_add_udev_link(struct manager *m,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
link_set_friendly_name(l, m->friendly_name);
|
link_set_friendly_name(l, m->friendly_name);
|
||||||
|
link_set_config_methods(l, m->config_methods);
|
||||||
|
|
||||||
if(use_dev)
|
if(use_dev)
|
||||||
link_use_dev(l);
|
link_use_dev(l);
|
||||||
|
@ -215,6 +217,7 @@ static void manager_free(struct manager *m)
|
||||||
sd_event_unref(m->event);
|
sd_event_unref(m->event);
|
||||||
|
|
||||||
free(m->friendly_name);
|
free(m->friendly_name);
|
||||||
|
free(m->config_methods);
|
||||||
free(m);
|
free(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,6 +230,7 @@ static int manager_new(struct manager **out)
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
sigset_t mask;
|
sigset_t mask;
|
||||||
int r;
|
int r;
|
||||||
|
char *cm;
|
||||||
|
|
||||||
m = calloc(1, sizeof(*m));
|
m = calloc(1, sizeof(*m));
|
||||||
if (!m)
|
if (!m)
|
||||||
|
@ -234,6 +238,16 @@ static int manager_new(struct manager **out)
|
||||||
|
|
||||||
shl_htable_init_uint(&m->links);
|
shl_htable_init_uint(&m->links);
|
||||||
|
|
||||||
|
|
||||||
|
if (config_methods) {
|
||||||
|
cm = strdup(config_methods);
|
||||||
|
if (!cm)
|
||||||
|
return log_ENOMEM();
|
||||||
|
|
||||||
|
free(m->config_methods);
|
||||||
|
m->config_methods = cm;
|
||||||
|
}
|
||||||
|
|
||||||
r = sd_event_default(&m->event);
|
r = sd_event_default(&m->event);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
log_vERR(r);
|
log_vERR(r);
|
||||||
|
@ -459,6 +473,7 @@ static int help(void)
|
||||||
" --log-time Prefix log-messages with timestamp\n"
|
" --log-time Prefix log-messages with timestamp\n"
|
||||||
"\n"
|
"\n"
|
||||||
" -i --interface Choose the interface to use\n"
|
" -i --interface Choose the interface to use\n"
|
||||||
|
" --config-methods Define config methods for pairing, default 'pbc'\n"
|
||||||
"\n"
|
"\n"
|
||||||
" --wpa-loglevel <lvl wpa_supplicant log-level\n"
|
" --wpa-loglevel <lvl wpa_supplicant log-level\n"
|
||||||
" --use-dev enable workaround for 'no ifname' issue\n"
|
" --use-dev enable workaround for 'no ifname' issue\n"
|
||||||
|
@ -477,10 +492,9 @@ static int parse_argv(int argc, char *argv[])
|
||||||
ARG_VERSION = 0x100,
|
ARG_VERSION = 0x100,
|
||||||
ARG_LOG_LEVEL,
|
ARG_LOG_LEVEL,
|
||||||
ARG_LOG_TIME,
|
ARG_LOG_TIME,
|
||||||
|
|
||||||
ARG_WPA_LOGLEVEL,
|
ARG_WPA_LOGLEVEL,
|
||||||
|
|
||||||
ARG_USE_DEV,
|
ARG_USE_DEV,
|
||||||
|
ARG_CONFIG_METHODS,
|
||||||
};
|
};
|
||||||
static const struct option options[] = {
|
static const struct option options[] = {
|
||||||
{ "help", no_argument, NULL, 'h' },
|
{ "help", no_argument, NULL, 'h' },
|
||||||
|
@ -491,6 +505,7 @@ static int parse_argv(int argc, char *argv[])
|
||||||
{ "wpa-loglevel", required_argument, NULL, ARG_WPA_LOGLEVEL },
|
{ "wpa-loglevel", required_argument, NULL, ARG_WPA_LOGLEVEL },
|
||||||
{ "interface", required_argument, NULL, 'i' },
|
{ "interface", required_argument, NULL, 'i' },
|
||||||
{ "use-dev", no_argument, NULL, ARG_USE_DEV },
|
{ "use-dev", no_argument, NULL, ARG_USE_DEV },
|
||||||
|
{ "config-methods", required_argument, NULL, ARG_CONFIG_METHODS },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
int c;
|
int c;
|
||||||
|
@ -514,6 +529,9 @@ static int parse_argv(int argc, char *argv[])
|
||||||
case ARG_USE_DEV:
|
case ARG_USE_DEV:
|
||||||
use_dev = true;
|
use_dev = true;
|
||||||
break;
|
break;
|
||||||
|
case ARG_CONFIG_METHODS:
|
||||||
|
config_methods = optarg;
|
||||||
|
break;
|
||||||
|
|
||||||
case ARG_WPA_LOGLEVEL:
|
case ARG_WPA_LOGLEVEL:
|
||||||
arg_wpa_loglevel = log_parse_arg(optarg);
|
arg_wpa_loglevel = log_parse_arg(optarg);
|
||||||
|
|
|
@ -129,6 +129,7 @@ struct link {
|
||||||
char *ifname;
|
char *ifname;
|
||||||
char *friendly_name;
|
char *friendly_name;
|
||||||
char *wfd_subelements;
|
char *wfd_subelements;
|
||||||
|
char *config_methods;
|
||||||
|
|
||||||
size_t peer_cnt;
|
size_t peer_cnt;
|
||||||
struct shl_htable peers;
|
struct shl_htable peers;
|
||||||
|
@ -161,6 +162,7 @@ bool link_is_using_dev(struct link *l);
|
||||||
void link_set_managed(struct link *l, bool set);
|
void link_set_managed(struct link *l, bool set);
|
||||||
int link_renamed(struct link *l, const char *ifname);
|
int link_renamed(struct link *l, const char *ifname);
|
||||||
|
|
||||||
|
int link_set_config_methods(struct link *l, char *config_methods);
|
||||||
int link_set_friendly_name(struct link *l, const char *name);
|
int link_set_friendly_name(struct link *l, const char *name);
|
||||||
const char *link_get_friendly_name(struct link *l);
|
const char *link_get_friendly_name(struct link *l);
|
||||||
int link_set_wfd_subelements(struct link *l, const char *val);
|
int link_set_wfd_subelements(struct link *l, const char *val);
|
||||||
|
@ -188,6 +190,7 @@ struct manager {
|
||||||
sd_event_source *udev_mon_source;
|
sd_event_source *udev_mon_source;
|
||||||
|
|
||||||
char *friendly_name;
|
char *friendly_name;
|
||||||
|
char *config_methods;
|
||||||
|
|
||||||
size_t link_cnt;
|
size_t link_cnt;
|
||||||
struct shl_htable links;
|
struct shl_htable links;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue