diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/adapter.c | 107 | ||||
| -rw-r--r-- | src/dbus-hci.c | 25 | ||||
| -rw-r--r-- | src/device.c | 50 | ||||
| -rw-r--r-- | src/storage.c | 8 | 
4 files changed, 109 insertions, 81 deletions
| diff --git a/src/adapter.c b/src/adapter.c index 3239e9a1..02df6ea6 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -98,10 +98,13 @@ struct btd_adapter {  	uint32_t discov_timeout;	/* discoverable time(sec) */  	guint pairable_timeout_id;	/* pairable timeout id */  	uint32_t pairable_timeout;	/* pairable time(sec) */ -	uint8_t scan_mode;		/* scan mode: SCAN_DISABLED, SCAN_PAGE, SCAN_INQUIRY */ -	uint8_t mode;			/* off, connectable, discoverable, limited */ +	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 state;			/* standard inq, periodic inq, name resloving */ +	int state;			/* standard inq, periodic inq, name +					 * resloving */  	GSList *found_devices;  	GSList *oor_devices;		/* out of range device list */  	DBusMessage *discovery_cancel;	/* discovery cancel message request */ @@ -226,7 +229,8 @@ int pending_remote_name_cancel(struct btd_adapter *adapter)  	if (hci_read_remote_name_cancel(dd, &dev->bdaddr,  					HCI_REQ_TIMEOUT) < 0) { -		error("Remote name cancel failed: %s(%d)", strerror(errno), errno); +		error("Remote name cancel failed: %s(%d)", strerror(errno), +									errno);  		err = -errno;  	} @@ -236,10 +240,12 @@ int pending_remote_name_cancel(struct btd_adapter *adapter)  	adapter->found_devices = NULL;  	hci_close_dev(dd); +  	return err;  } -static int set_limited_discoverable(int dd, const uint8_t *cls, gboolean limited) +static int set_limited_discoverable(int dd, const uint8_t *cls, +							gboolean limited)  {  	uint32_t dev_class;  	int num = (limited ? 2 : 1); @@ -436,18 +442,18 @@ static int set_mode(struct btd_adapter *adapter, uint8_t new_mode)  			hci_close_dev(dd);  			return err;  		} -	} else { -		/* discoverable or limited */ -		if ((scan_enable & SCAN_INQUIRY) && (new_mode != adapter->mode)) { -			adapter_remove_discov_timeout(adapter); -			if (adapter->discov_timeout) -				adapter_set_discov_timeout(adapter, +	} else if ((scan_enable & SCAN_INQUIRY) && +						(new_mode != adapter->mode)) { +		adapter_remove_discov_timeout(adapter); +		if (adapter->discov_timeout) +			adapter_set_discov_timeout(adapter,  						adapter->discov_timeout); -			if (new_mode == MODE_LIMITED) -				set_limited_discoverable(dd, adapter->dev.class, TRUE); -			else if (adapter->mode == MODE_LIMITED) -				set_limited_discoverable(dd, adapter->dev.class, FALSE); -		} +		if (new_mode == MODE_LIMITED) +			set_limited_discoverable(dd, adapter->dev.class, +									TRUE); +		else if (adapter->mode == MODE_LIMITED) +			set_limited_discoverable(dd, adapter->dev.class, +									FALSE);  	}  done:  	modestr = mode2str(new_mode); @@ -559,8 +565,8 @@ static void adapter_set_pairable_timeout(struct btd_adapter *adapter,  		return;  	adapter->pairable_timeout_id = g_timeout_add_seconds(interval, -							pairable_timeout_handler, -							adapter); +						pairable_timeout_handler, +						adapter);  }  static struct session_req *find_session(GSList *list, const char *sender) @@ -851,7 +857,7 @@ static DBusMessage *set_name(DBusConnection *conn, DBusMessage *msg,  	const char *path;  	if (!g_utf8_validate(name, -1, NULL)) { -		error("Name change failed: the supplied name isn't valid UTF-8"); +		error("Name change failed: supplied name isn't valid UTF-8");  		return invalid_args(msg);  	} @@ -867,7 +873,8 @@ static DBusMessage *set_name(DBusConnection *conn, DBusMessage *msg,  	return dbus_message_new_method_return(msg);  } -struct btd_device *adapter_find_device(struct btd_adapter *adapter, const char *dest) +struct btd_device *adapter_find_device(struct btd_adapter *adapter, +							const char *dest)  {  	struct btd_device *device;  	GSList *l; @@ -875,8 +882,8 @@ struct btd_device *adapter_find_device(struct btd_adapter *adapter, const char *  	if (!adapter)  		return NULL; -	l = g_slist_find_custom(adapter->devices, -				dest, (GCompareFunc) device_address_cmp); +	l = g_slist_find_custom(adapter->devices, dest, +					(GCompareFunc) device_address_cmp);  	if (!l)  		return NULL; @@ -886,7 +893,7 @@ struct btd_device *adapter_find_device(struct btd_adapter *adapter, const char *  }  struct btd_device *adapter_find_connection(struct btd_adapter *adapter, -					uint16_t handle) +						uint16_t handle)  {  	GSList *l; @@ -920,7 +927,8 @@ static void adapter_update_devices(struct btd_adapter *adapter)  }  struct btd_device *adapter_create_device(DBusConnection *conn, -				struct btd_adapter *adapter, const char *address) +						struct btd_adapter *adapter, +						const char *address)  {  	struct btd_device *device;  	const char *path; @@ -979,7 +987,8 @@ void adapter_remove_device(DBusConnection *conn, struct btd_adapter *adapter,  }  struct btd_device *adapter_get_device(DBusConnection *conn, -				struct btd_adapter *adapter, const gchar *address) +						struct btd_adapter *adapter, +						const gchar *address)  {  	struct btd_device *device; @@ -1233,7 +1242,8 @@ static DBusMessage *get_properties(DBusConnection *conn,  		struct btd_device *dev = l->data;  		devices[i] = (char *) device_get_path(dev);  	} -	dict_append_array(&dict, "Devices", DBUS_TYPE_OBJECT_PATH, &devices, i); +	dict_append_array(&dict, "Devices", DBUS_TYPE_OBJECT_PATH, +								&devices, i);  	g_free(devices);  	dbus_message_iter_close_container(&iter, &dict); @@ -1425,7 +1435,7 @@ static DBusMessage *cancel_device_creation(DBusConnection *conn,  						DBusMessage *msg, void *data)  {  	struct btd_adapter *adapter = data; -	const gchar *address; +	const gchar *address, *sender = dbus_message_get_sender(msg);  	struct btd_device *device;  	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &address, @@ -1441,8 +1451,7 @@ static DBusMessage *cancel_device_creation(DBusConnection *conn,  				ERROR_INTERFACE ".DoesNotExist",  				"Device does not exist"); -	if (!device_is_temporary(device) || -			!device_is_bonding(device, dbus_message_get_sender(msg))) +	if (!device_is_temporary(device) || !device_is_bonding(device, sender))  		return not_authorized(msg);  	adapter_remove_device(conn, adapter, device); @@ -1788,7 +1797,8 @@ static int adapter_setup(struct btd_adapter *adapter, int dd)  			events[6] |= 0x20;	/* Simple Pairing Complete */  			events[7] |= 0x04;	/* User Passkey Notification */  			events[7] |= 0x08;	/* Keypress Notification */ -			events[7] |= 0x10;	/* Remote Host Supported Features Notification */ +			events[7] |= 0x10;	/* Remote Host Supported +						 * Features Notification */  		}  		hci_send_cmd(dd, OGF_HOST_CTL, OCF_SET_EVENT_MASK, @@ -1873,10 +1883,12 @@ static void load_devices(struct btd_adapter *adapter)  	ba2str(&adapter->bdaddr, srcaddr);  	create_name(filename, PATH_MAX, STORAGEDIR, srcaddr, "profiles"); -	textfile_foreach(filename, create_stored_device_from_profiles, adapter); +	textfile_foreach(filename, create_stored_device_from_profiles, +								adapter);  	create_name(filename, PATH_MAX, STORAGEDIR, srcaddr, "linkkeys"); -	textfile_foreach(filename, create_stored_device_from_linkkeys, adapter); +	textfile_foreach(filename, create_stored_device_from_linkkeys, +								adapter);  }  static void load_drivers(struct btd_adapter *adapter) @@ -2093,7 +2105,8 @@ int adapter_start(struct btd_adapter *adapter)  		return err;  	} -	if (hci_read_local_name(dd, sizeof(name), name, HCI_REQ_TIMEOUT) < 0) { +	if (hci_read_local_name(dd, sizeof(name), name, +						HCI_REQ_TIMEOUT) < 0) {  		err = -errno;  		error("Can't read local name on %s: %s (%d)",  					adapter->path, strerror(err), err); @@ -2119,8 +2132,8 @@ int adapter_start(struct btd_adapter *adapter)  	}  setup: -	hci_send_cmd(dd, OGF_LINK_POLICY, -				OCF_READ_DEFAULT_LINK_POLICY, 0, NULL); +	hci_send_cmd(dd, OGF_LINK_POLICY, OCF_READ_DEFAULT_LINK_POLICY, +								0, NULL);  	if (hci_test_bit(HCI_INQUIRY, &di.flags))  		adapter->state |= STD_INQUIRY; @@ -2325,8 +2338,7 @@ struct btd_adapter *adapter_create(DBusConnection *conn, int id,  	adapter = g_try_new0(struct btd_adapter, 1);  	if (!adapter) { -		error("Failed to alloc memory to D-Bus path register data (%s)", -				path); +		error("adapter_create: failed to alloc memory for %s", path);  		return NULL;  	} @@ -2371,7 +2383,6 @@ void adapter_remove(struct btd_adapter *adapter)  done:  	g_dbus_unregister_interface(connection, path, ADAPTER_INTERFACE); -  	g_free(path);  } @@ -2405,7 +2416,8 @@ void adapter_set_state(struct btd_adapter *adapter, int state)  		discov_active = TRUE;  	else if (adapter->disc_sessions && main_opts.inqmode)  		adapter->scheduler_id = g_timeout_add_seconds(main_opts.inqmode, -				(GSourceFunc) start_inquiry, adapter); +						(GSourceFunc) start_inquiry, +						adapter);  	/* Send out of range */  	if (!discov_active) @@ -2470,10 +2482,10 @@ int adapter_add_found_device(struct btd_adapter *adapter, bdaddr_t *bdaddr,  			dev->alias = g_strdup(alias);  		} -		 /* Get remote name can be received while inquiring. -		  * Keep in mind that multiple inquiry result events can -		  * be received from the same remote device. -		  */ +		/* Get remote name can be received while inquiring.  Keep in +		 * mind that multiple inquiry result events can be received +		 * from the same remote device. +		 */  		if (name_status != NAME_NOT_REQUIRED)  			dev->name_status = name_status; @@ -2732,7 +2744,8 @@ void btd_unregister_adapter_driver(struct btd_adapter_driver *driver)  	adapter_drivers = g_slist_remove(adapter_drivers, driver);  } -static void agent_auth_cb(struct agent *agent, DBusError *derr, void *user_data) +static void agent_auth_cb(struct agent *agent, DBusError *derr, +							void *user_data)  {  	struct service_auth *auth = user_data; @@ -2741,8 +2754,10 @@ static void agent_auth_cb(struct agent *agent, DBusError *derr, void *user_data)  	g_free(auth);  } -static int btd_adapter_authorize(struct btd_adapter *adapter, const bdaddr_t *dst, -		const char *uuid, service_auth_cb cb, void *user_data) +static int btd_adapter_authorize(struct btd_adapter *adapter, +					const bdaddr_t *dst, +					const char *uuid, +					service_auth_cb cb, void *user_data)  {  	struct service_auth *auth;  	struct btd_device *device; diff --git a/src/dbus-hci.c b/src/dbus-hci.c index 45f65f1d..be90a0d0 100644 --- a/src/dbus-hci.c +++ b/src/dbus-hci.c @@ -190,7 +190,8 @@ static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode,  	bacpy(&pr.bdaddr, &dba);  	memcpy(pr.pin_code, pincode, len);  	pr.pin_len = len; -	hci_send_cmd(dev, OGF_LINK_CTL, OCF_PIN_CODE_REPLY, PIN_CODE_REPLY_CP_SIZE, &pr); +	hci_send_cmd(dev, OGF_LINK_CTL, OCF_PIN_CODE_REPLY, +						PIN_CODE_REPLY_CP_SIZE, &pr);  done:  	hci_close_dev(dev); @@ -346,7 +347,8 @@ int hcid_dbus_user_confirm(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey)  	debug("remote authentication requirement is 0x%02x", remauth);  	/* If no side requires MITM protection; auto-accept */ -	if (!(remauth & 0x01) && (type == 0xff || !(type & 0x01) || remcap == 0x03)) { +	if (!(remauth & 0x01) && +			(type == 0xff || !(type & 0x01) || remcap == 0x03)) {  		int dd;  		dd = hci_open_dev(dev_id); @@ -378,8 +380,8 @@ int hcid_dbus_user_passkey(bdaddr_t *sba, bdaddr_t *dba)  	if (!get_adapter_and_device(sba, dba, &adapter, &device, TRUE))  		return -ENODEV; -	return device_request_authentication(device, AUTH_TYPE_PASSKEY, -					0, passkey_cb); +	return device_request_authentication(device, AUTH_TYPE_PASSKEY, 0, +								passkey_cb);  }  int hcid_dbus_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey) @@ -391,11 +393,11 @@ int hcid_dbus_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey)  		return -ENODEV;  	return device_request_authentication(device, AUTH_TYPE_NOTIFY, -					passkey, NULL); +								passkey, NULL);  }  void hcid_dbus_bonding_process_complete(bdaddr_t *local, bdaddr_t *peer, -					uint8_t status) +								uint8_t status)  {  	struct btd_adapter *adapter;  	struct btd_device *device; @@ -502,7 +504,7 @@ static int found_device_req_name(struct btd_adapter *adapter)  		cp.pscan_rep_mode = 0x02;  		if (hci_send_req(dd, &rq, HCI_REQ_TIMEOUT) < 0) -			error("Unable to send the HCI remote name request: %s (%d)", +			error("Unable to send HCI remote name req: %s (%d)",  						strerror(errno), errno);  		if (!rp.status) { @@ -921,7 +923,8 @@ int hcid_dbus_link_key_notify(bdaddr_t *local, bdaddr_t *peer,  				(local_auth > 0x01 && remote_auth > 0x01)) {  		int err; -		err = write_link_key(local, peer, key, new_key_type, pin_length); +		err = write_link_key(local, peer, key, new_key_type, +								pin_length);  		if (err < 0) {  			error("write_link_key: %s (%d)", strerror(-err), -err);  			return err; @@ -1365,7 +1368,8 @@ int cancel_discovery(struct btd_adapter *adapter)  	dev = adapter_search_found_devices(adapter, &match);  	if (dev) { -		if (remote_name_cancel(dd, &dev->bdaddr, HCI_REQ_TIMEOUT) < 0) { +		if (remote_name_cancel(dd, &dev->bdaddr, +							HCI_REQ_TIMEOUT) < 0) {  			error("Read remote name cancel failed: %s, (%d)",  					strerror(errno), errno);  			err = -errno; @@ -1423,7 +1427,8 @@ int cancel_periodic_discovery(struct btd_adapter *adapter)  	dev = adapter_search_found_devices(adapter, &match);  	if (dev) { -		if (remote_name_cancel(dd, &dev->bdaddr, HCI_REQ_TIMEOUT) < 0) { +		if (remote_name_cancel(dd, &dev->bdaddr, +							HCI_REQ_TIMEOUT) < 0) {  			error("Read remote name cancel failed: %s, (%d)",  					strerror(errno), errno);  			err = -errno; diff --git a/src/device.c b/src/device.c index 78404a33..434ca3e1 100644 --- a/src/device.c +++ b/src/device.c @@ -94,7 +94,8 @@ struct btd_device {  	struct agent	*agent;  	guint		disconn_timer;  	int		discov_active;		/* Service discovery active */ -	char		*discov_requestor;	/* discovery requestor unique name */ +	char		*discov_requestor;	/* discovery requestor unique +						 * name */  	guint		discov_listener;  	guint		discov_timer;  	struct bonding_req *bonding; @@ -346,7 +347,6 @@ static DBusMessage *set_trust(DBusConnection *conn, DBusMessage *msg,  	char srcaddr[18], dstaddr[18];  	bdaddr_t src; -  	adapter_get_address(adapter, &src);  	ba2str(&src, srcaddr);  	ba2str(&device->bdaddr, dstaddr); @@ -430,7 +430,7 @@ static DBusMessage *discover_services(DBusConnection *conn,  	if (device->discov_active)  		return g_dbus_create_error(msg, ERROR_INTERFACE ".InProgress", -							"Discover in progress"); +						"Discover in progress");  	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern,  						DBUS_TYPE_INVALID) == FALSE) @@ -465,6 +465,7 @@ static DBusMessage *cancel_discover(DBusConnection *conn,  {  	struct btd_device *device = user_data;  	struct btd_adapter *adapter = device->adapter; +	const char *sender = dbus_message_get_sender(msg);  	bdaddr_t src;  	adapter_get_address(adapter, &src); @@ -476,7 +477,7 @@ static DBusMessage *cancel_discover(DBusConnection *conn,  	/* only the discover requestor can cancel the inquiry process */  	if (!device->discov_requestor || -			strcmp(device->discov_requestor, dbus_message_get_sender(msg))) +				!g_str_equal(device->discov_requestor, sender))  		return g_dbus_create_error(msg,  				ERROR_INTERFACE ".NotAuthorized",  				"Not Authorized"); @@ -515,8 +516,8 @@ fail:  	return FALSE;  } -static DBusMessage *disconnect(DBusConnection *conn, -					DBusMessage *msg, void *user_data) +static DBusMessage *disconnect(DBusConnection *conn, DBusMessage *msg, +							void *user_data)  {  	struct btd_device *device = user_data; @@ -556,8 +557,9 @@ gboolean device_is_connected(struct btd_device *device)  	return (device->handle != 0);  } -static void device_set_connected(struct btd_device *device, DBusConnection *conn, -			gboolean connected) +static void device_set_connected(struct btd_device *device, +					DBusConnection *conn, +					gboolean connected)  {  	emit_property_changed(conn, device->path, DEVICE_INTERFACE,  				"Connected", DBUS_TYPE_BOOLEAN, &connected); @@ -612,7 +614,8 @@ void device_set_secmode3_conn(struct btd_device *device, gboolean enable)  	device->secmode3 = enable;  } -struct btd_device *device_create(DBusConnection *conn, struct btd_adapter *adapter, +struct btd_device *device_create(DBusConnection *conn, +					struct btd_adapter *adapter,  					const gchar *address)  {  	gchar *address_up; @@ -645,7 +648,8 @@ struct btd_device *device_create(DBusConnection *conn, struct btd_adapter *adapt  	return device;  } -static void device_remove_bonding(struct btd_device *device, DBusConnection *conn) +static void device_remove_bonding(struct btd_device *device, +							DBusConnection *conn)  {  	char filename[PATH_MAX + 1];  	char *str, srcaddr[18], dstaddr[18]; @@ -851,13 +855,13 @@ void device_probe_drivers(struct btd_device *device, GSList *profiles)  	for (list = profiles; list; list = list->next) {  		GSList *l = g_slist_find_custom(device->uuids, list->data, -							(GCompareFunc) strcasecmp); +						(GCompareFunc) strcasecmp);  		if (l)  			continue;  		device->uuids = g_slist_insert_sorted(device->uuids, -							g_strdup(list->data), -							(GCompareFunc) strcasecmp); +						g_strdup(list->data), +						(GCompareFunc) strcasecmp);  	}  	if (device->tmp_records) { @@ -897,7 +901,8 @@ static void device_remove_drivers(struct btd_device *device, GSList *uuids)  					(GCompareFunc) strcasecmp))  				continue; -			debug("UUID %s was removed from device %s", *uuid, dstaddr); +			debug("UUID %s was removed from device %s", +							*uuid, dstaddr);  			driver->remove(device);  			device->drivers = g_slist_remove(device->drivers, @@ -1102,7 +1107,8 @@ static void update_services(struct browse_req *req, sdp_list_t *recs)  		store_record(srcaddr, dstaddr, rec);  		/* Copy record */ -		req->records = sdp_list_append(req->records, sdp_copy_record(rec)); +		req->records = sdp_list_append(req->records, +							sdp_copy_record(rec));  		l = g_slist_find_custom(device->uuids, profile_uuid,  							(GCompareFunc) strcmp); @@ -1184,7 +1190,8 @@ static void search_cb(sdp_list_t *recs, int err, gpointer user_data)  	}  	if (device->tmp_records && req->records) { -		sdp_list_free(device->tmp_records, (sdp_free_func_t) sdp_record_free); +		sdp_list_free(device->tmp_records, +					(sdp_free_func_t) sdp_record_free);  		device->tmp_records = req->records;  		req->records = NULL;  	} @@ -1235,8 +1242,8 @@ static void browse_cb(sdp_list_t *recs, int err, gpointer user_data)  	bdaddr_t src;  	uuid_t uuid; -	/* If we have a valid response and req->search_uuid == 2, then -	   L2CAP UUID & PNP searching was successful -- we are done */ +	/* If we have a valid response and req->search_uuid == 2, then L2CAP +	 * UUID & PNP searching was successful -- we are done */  	if (err < 0 || (req->search_uuid == 2 && req->records))  		goto done; @@ -1307,12 +1314,14 @@ int device_browse(struct btd_device *device, DBusConnection *conn,  	device->discov_active = 1;  	if (msg) { +		const char *sender = dbus_message_get_sender(msg); +  		req->msg = dbus_message_ref(msg); -		device->discov_requestor = g_strdup(dbus_message_get_sender(msg)); +		device->discov_requestor = g_strdup(sender);  		/* Track the request owner to cancel it  		 * automatically if the owner exits */  		device->discov_listener = g_dbus_add_disconnect_watch(conn, -						dbus_message_get_sender(msg), +						sender,  						discover_services_req_exit,  						device, NULL);  	} @@ -1549,7 +1558,6 @@ static struct bonding_req *bonding_request_new(DBusConnection *conn,  			device->path, name, agent_path);  proceed: -  	bonding = g_new0(struct bonding_req, 1);  	bonding->conn = dbus_connection_ref(conn); diff --git a/src/storage.c b/src/storage.c index a03723a6..11760fa6 100644 --- a/src/storage.c +++ b/src/storage.c @@ -847,8 +847,8 @@ sdp_record_t *record_from_string(const gchar *str)  	tmp[2] = 0;  	for (i = 0; i < size; i++) { -		 memcpy(tmp, str + (i * 2), 2); -		 pdata[i] = (uint8_t) strtol(tmp, NULL, 16); +		memcpy(tmp, str + (i * 2), 2); +		pdata[i] = (uint8_t) strtol(tmp, NULL, 16);  	}  	rec = sdp_extract_pdu(pdata, size, &len); @@ -1068,8 +1068,8 @@ int read_device_id(const gchar *srcaddr, const gchar *dstaddr,  	if (err) {  		/* FIXME: We should try EIR data if we have it, too */ -		/* If we don't have the data, we don't want to go -		   through the above search every time. */ +		/* If we don't have the data, we don't want to go through the +		 * above search every time. */  		lsource = 0xffff;  		lvendor = 0x0000;  		lproduct = 0x0000; | 
