diff options
| -rw-r--r-- | hcid/adapter.c | 25 | ||||
| -rw-r--r-- | hcid/adapter.h | 4 | ||||
| -rw-r--r-- | hcid/dbus-hci.c | 8 | 
3 files changed, 26 insertions, 11 deletions
| diff --git a/hcid/adapter.c b/hcid/adapter.c index 32b9039f..cb2eba0a 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -368,7 +368,7 @@ static DBusMessage *set_mode(DBusConnection *conn, DBusMessage *msg,  {  	struct adapter *adapter = data;  	uint8_t scan_enable; -	uint8_t current_scan = adapter->scan_enable; +	uint8_t current_scan = adapter->scan_mode;  	bdaddr_t local;  	gboolean limited;  	int err, dd; @@ -560,7 +560,7 @@ static DBusMessage *set_discoverable_timeout(DBusConnection *conn,  		adapter->discov_timeout_id = 0;  	} -	if ((timeout != 0) && (adapter->scan_enable & SCAN_INQUIRY)) +	if ((timeout != 0) && (adapter->scan_mode & SCAN_INQUIRY))  		adapter->discov_timeout_id = g_timeout_add(timeout * 1000,  						discov_timeout_handler,  						adapter); @@ -2223,9 +2223,9 @@ static void adapter_up(struct adapter *adapter, int dd)  	adapter->discov_timeout = get_discoverable_timeout(adapter->dev_id);  	adapter->discov_type = DISCOVER_TYPE_NONE; -	adapter->scan_enable = get_startup_scan(adapter->dev_id); +	adapter->scan_mode = get_startup_scan(adapter->dev_id);  	hci_send_cmd(dd, OGF_HOST_CTL, OCF_WRITE_SCAN_ENABLE, -					1, &adapter->scan_enable); +					1, &adapter->scan_mode);  	adapter->mode = get_startup_mode(adapter->dev_id);  	if (adapter->mode == MODE_LIMITED) @@ -2474,7 +2474,7 @@ int adapter_stop(struct adapter *adapter)  					DBUS_TYPE_STRING, &mode);  	adapter->up = 0; -	adapter->scan_enable = SCAN_DISABLED; +	adapter->scan_mode = SCAN_DISABLED;  	adapter->mode = MODE_OFF;  	adapter->discov_active = 0;  	adapter->pdiscov_active = 0; @@ -2597,7 +2597,7 @@ gboolean discov_timeout_handler(void *data)  	struct adapter *adapter = data;  	struct hci_request rq;  	int dd; -	uint8_t scan_enable = adapter->scan_enable; +	uint8_t scan_enable = adapter->scan_mode;  	uint8_t status = 0;  	gboolean retval = TRUE;  	uint16_t dev_id = adapter->dev_id; @@ -2665,3 +2665,16 @@ void adapter_remove_discov_timeout(struct adapter *adapter)  	g_source_remove(adapter->discov_timeout_id);  	adapter->discov_timeout_id = 0;  } + +void adapter_set_scan_mode(struct adapter *adapter, uint8_t scan_mode) +{ +	if (!adapter) +		return; + +	adapter->scan_mode = scan_mode; +} + +uint8_t adapter_get_scan_mode(struct adapter *adapter) +{ +	return adapter->scan_mode; +} diff --git a/hcid/adapter.h b/hcid/adapter.h index 98eaf8fe..27da5cfa 100644 --- a/hcid/adapter.h +++ b/hcid/adapter.h @@ -105,7 +105,7 @@ struct adapter {  	char address[18];		/* adapter Bluetooth Address */  	guint discov_timeout_id;	/* discoverable timeout id */  	uint32_t discov_timeout;	/* discoverable time(msec) */ -	uint8_t scan_enable;		/* scan mode: SCAN_DISABLED, SCAN_PAGE, SCAN_INQUIRY */ +	uint8_t scan_mode;		/* scan mode: SCAN_DISABLED, SCAN_PAGE, SCAN_INQUIRY */  	uint8_t mode;			/* off, connectable, discoverable, limited */  	uint8_t global_mode;		/* last valid global mode */  	int discov_active;		/* standard discovery active: includes name resolution step */ @@ -181,3 +181,5 @@ const gchar *adapter_get_address(struct adapter *adapter);  void adapter_free(struct adapter *adapter);  void adapter_set_discov_timeout(struct adapter *adapter, guint interval);  void adapter_remove_discov_timeout(struct adapter *adapter); +void adapter_set_scan_mode(struct adapter *adapter, uint8_t scan_mode); +uint8_t adapter_get_scan_mode(struct adapter *adapter); diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c index f4e5b884..e499aca2 100644 --- a/hcid/dbus-hci.c +++ b/hcid/dbus-hci.c @@ -261,14 +261,14 @@ DBusMessage *new_authentication_return(DBusMessage *msg, uint8_t status)  	}  } -static void adapter_mode_changed(struct adapter *adapter, uint8_t scan_enable) +static void adapter_mode_changed(struct adapter *adapter, uint8_t scan_mode)  {  	const char *mode;  	const gchar *path = adapter_get_path(adapter); -	adapter->scan_enable = scan_enable; +	adapter_set_scan_mode(adapter, scan_mode); -	switch (scan_enable) { +	switch (scan_mode) {  	case SCAN_DISABLED:  		mode = "off";  		adapter->mode = MODE_OFF; @@ -1683,7 +1683,7 @@ void hcid_dbus_setscan_enable_complete(bdaddr_t *local)  	adapter_remove_discov_timeout(adapter); -	if (adapter->scan_enable != rp.enable) +	if (adapter_get_scan_mode(adapter) != rp.enable)  		adapter_mode_changed(adapter, rp.enable);  failed: | 
