diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/adapter.c | 8 | ||||
| -rw-r--r-- | src/main.c | 11 | ||||
| -rw-r--r-- | src/main.conf | 4 | 
3 files changed, 21 insertions, 2 deletions
| diff --git a/src/adapter.c b/src/adapter.c index c85ca360..853592bb 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2531,8 +2531,12 @@ static int adapter_up(struct btd_adapter *adapter, int dd)  		adapter->pairable = TRUE;  	/* Set scan mode */ -	if (read_device_mode(srcaddr, mode, sizeof(mode)) < 0) -		goto proceed; +	if (read_device_mode(srcaddr, mode, sizeof(mode)) < 0) { +		if (!adapter->initialized && main_opts.mode == MODE_OFF) +			strcpy(mode, "off"); +		else +			goto proceed; +	}  	if (g_str_equal(mode, "off")) {  		powered = FALSE; @@ -96,6 +96,7 @@ static void parse_config(GKeyFile *config)  	GError *err = NULL;  	char *str;  	int val; +	gboolean boolean;  	if (!config)  		return; @@ -173,6 +174,16 @@ static void parse_config(GKeyFile *config)  		main_opts.inqmode = val;  	} +	boolean = g_key_file_get_boolean(config, "General", +						"InitiallyPowered", +						&err); +	if (err) { +		debug("%s", err->message); +		g_clear_error(&err); +	} else if (boolean == FALSE) +		main_opts.mode = MODE_OFF; + +  	main_opts.link_mode = HCI_LM_ACCEPT;  	main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF | diff --git a/src/main.conf b/src/main.conf index 0ddd9498..2479df39 100644 --- a/src/main.conf +++ b/src/main.conf @@ -29,3 +29,7 @@ PageTimeout = 8192  # Discover scheduler interval used in Adapter.DiscoverDevices  # The value is in seconds. Defaults is 0 to use controller scheduler  DiscoverSchedulerInterval = 0 + +# Whether adapters should assume Powered=off when SetProperty(Powered, ...) +# hasn't been called yet. Defaults to true +InitiallyPowered = true | 
