2012-10-09 12:11:53

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 0/9] Remove some old code

This removes some unused or not needed old code.

Szymon Janc (9):
Simplify checking if found device is legacy
Pass confirm name as gboolean value
event: Don't store EIR in btd_event_device_found
storage: Remove not used read_remote_eir
storage: Remove not used write_version_info
storage: Remove not used write_features_info
storage: Remove not used read_remote_features
adapter: Remove not used btd_adapter_switch_{online,offline}
functions
device: Remove not used device_set_class function

src/adapter.c | 95 +++++------------------------------
src/adapter.h | 8 ++-
src/device.c | 12 -----
src/device.h | 1 -
src/event.c | 27 ++--------
src/event.h | 6 +--
src/mgmt.c | 13 ++---
src/storage.c | 156 ---------------------------------------------------------
src/storage.h | 11 ----
9 files changed, 26 insertions(+), 303 deletions(-)

--
1.7.9.5



2012-10-10 10:04:11

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 2/9] Pass confirm name as gboolean value

Hi Szymon,

> > > confirm_name is a boolean value and can be pass as such instead of
> > > uint8_t.
> >
> > actually long term I want to move to bool usage. So maybe this is a good
> > start to get this going.
>
> OK, will send v2 with bool.
> Do you also want to stop introducing other glib types like gchar, gint etc?
> (at least for code that don't inherit this due to glib calls)

yes, please no more gchar and gint. These are horrible. We were young
and naive when we thought they were a good idea ;)

Regards

Marcel



2012-10-10 09:57:58

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH 2/9] Pass confirm name as gboolean value

On Tuesday 09 of October 2012 17:51:26 Marcel Holtmann wrote:
> Hi Szymon,
>
> > confirm_name is a boolean value and can be pass as such instead of
> > uint8_t.
>
> actually long term I want to move to bool usage. So maybe this is a good
> start to get this going.

OK, will send v2 with bool.
Do you also want to stop introducing other glib types like gchar, gint etc?
(at least for code that don't inherit this due to glib calls)

--
BR
Szymon Janc

2012-10-09 16:39:37

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH 0/9] Remove some old code

Hi Szymon,

On Tue, Oct 09, 2012, Szymon Janc wrote:
> This removes some unused or not needed old code.
>
> Szymon Janc (9):
> Simplify checking if found device is legacy
> Pass confirm name as gboolean value
> event: Don't store EIR in btd_event_device_found
> storage: Remove not used read_remote_eir
> storage: Remove not used write_version_info
> storage: Remove not used write_features_info
> storage: Remove not used read_remote_features
> adapter: Remove not used btd_adapter_switch_{online,offline}
> functions
> device: Remove not used device_set_class function
>
> src/adapter.c | 95 +++++------------------------------
> src/adapter.h | 8 ++-
> src/device.c | 12 -----
> src/device.h | 1 -
> src/event.c | 27 ++--------
> src/event.h | 6 +--
> src/mgmt.c | 13 ++---
> src/storage.c | 156 ---------------------------------------------------------
> src/storage.h | 11 ----
> 9 files changed, 26 insertions(+), 303 deletions(-)

All patches except the gboolean/bool one have been applied. Thanks.

Johan

2012-10-09 16:12:24

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 2/9] Pass confirm name as gboolean value

Hi Lucas,

> >> confirm_name is a boolean value and can be pass as such instead of
> >> uint8_t.
> >
> > actually long term I want to move to bool usage. So maybe this is a good
> > start to get this going.
>
> agreed... on new code that I'm adding I'm using bool.
>
> Btw, could we already use bool in gdbus/ ?

actually that one is heavily GLib specific. However if you are willing
to also clean up things like guint32, I have no problem with actually
converting that as well.

Getting rid of #include <glib/glib.h> in gdbus.h might be actually nice.

Regards

Marcel



2012-10-09 15:49:09

by Lucas De Marchi

[permalink] [raw]
Subject: Re: [PATCH 2/9] Pass confirm name as gboolean value

On Tue, Oct 9, 2012 at 11:51 AM, Marcel Holtmann <[email protected]> wrote:
> Hi Szymon,
>
>> confirm_name is a boolean value and can be pass as such instead of
>> uint8_t.
>
> actually long term I want to move to bool usage. So maybe this is a good
> start to get this going.

agreed... on new code that I'm adding I'm using bool.

Btw, could we already use bool in gdbus/ ?


Lucas De Marchi

2012-10-09 14:51:26

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 2/9] Pass confirm name as gboolean value

Hi Szymon,

> confirm_name is a boolean value and can be pass as such instead of
> uint8_t.

actually long term I want to move to bool usage. So maybe this is a good
start to get this going.

Regards

Marcel



2012-10-09 14:30:12

by Vinicius Costa Gomes

[permalink] [raw]
Subject: Re: [PATCH 0/9] Remove some old code

Hi Szymon,

On 14:11 Tue 09 Oct, Szymon Janc wrote:
> This removes some unused or not needed old code.
>
> Szymon Janc (9):
> Simplify checking if found device is legacy
> Pass confirm name as gboolean value
> event: Don't store EIR in btd_event_device_found
> storage: Remove not used read_remote_eir
> storage: Remove not used write_version_info
> storage: Remove not used write_features_info
> storage: Remove not used read_remote_features
> adapter: Remove not used btd_adapter_switch_{online,offline}
> functions
> device: Remove not used device_set_class function
>
> src/adapter.c | 95 +++++------------------------------
> src/adapter.h | 8 ++-
> src/device.c | 12 -----
> src/device.h | 1 -
> src/event.c | 27 ++--------
> src/event.h | 6 +--
> src/mgmt.c | 13 ++---
> src/storage.c | 156 ---------------------------------------------------------
> src/storage.h | 11 ----
> 9 files changed, 26 insertions(+), 303 deletions(-)

Ack.

>
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


Cheers,
--
Vinicius

2012-10-09 12:12:02

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 9/9] device: Remove not used device_set_class function

With mgmt interface CoD cannot change as it is only received in EIR when
device is discovered or connected. Was only used in
btd_event_remote_class which is now removed.

---
src/device.c | 12 ------------
src/device.h | 1 -
2 files changed, 13 deletions(-)

diff --git a/src/device.c b/src/device.c
index e94b222..71bfea5 100644
--- a/src/device.c
+++ b/src/device.c
@@ -3475,18 +3475,6 @@ void btd_device_unref(struct btd_device *device)
g_free(path);
}

-void device_set_class(struct btd_device *device, uint32_t value)
-{
- const char *icon = class_to_icon(value);
-
- g_dbus_emit_property_changed(btd_get_dbus_connection(), device->path,
- DEVICE_INTERFACE, "Class");
-
- if (icon)
- g_dbus_emit_property_changed(btd_get_dbus_connection(),
- device->path, DEVICE_INTERFACE, "Icon");
-}
-
int device_get_appearance(struct btd_device *device, uint16_t *value)
{
uint16_t app;
diff --git a/src/device.h b/src/device.h
index d23f40d..46cecb4 100644
--- a/src/device.h
+++ b/src/device.h
@@ -102,7 +102,6 @@ guint device_add_disconnect_watch(struct btd_device *device,
disconnect_watch watch, void *user_data,
GDestroyNotify destroy);
void device_remove_disconnect_watch(struct btd_device *device, guint id);
-void device_set_class(struct btd_device *device, uint32_t value);
int device_get_appearance(struct btd_device *device, uint16_t *value);
void device_set_appearance(struct btd_device *device, uint16_t value);

--
1.7.9.5


2012-10-09 12:12:00

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 7/9] storage: Remove not used read_remote_features

It was only usefull with hciops.

---
src/storage.c | 45 ---------------------------------------------
src/storage.h | 2 --
2 files changed, 47 deletions(-)

diff --git a/src/storage.c b/src/storage.c
index 297aba7..ac66021 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -435,51 +435,6 @@ done:
return 0;
}

-static int decode_bytes(const char *str, unsigned char *bytes, size_t len)
-{
- unsigned int i;
-
- for (i = 0; i < len; i++) {
- if (sscanf(str + (i * 2), "%02hhX", &bytes[i]) != 1)
- return -EINVAL;
- }
-
- return 0;
-}
-
-int read_remote_features(const bdaddr_t *local, const bdaddr_t *peer,
- unsigned char *page1, unsigned char *page2)
-{
- char filename[PATH_MAX + 1], addr[18], *str;
- size_t len;
- int err;
-
- if (page1 == NULL && page2 == NULL)
- return -EINVAL;
-
- create_filename(filename, PATH_MAX, local, "features");
-
- ba2str(peer, addr);
-
- str = textfile_get(filename, addr);
- if (!str)
- return -ENOENT;
-
- len = strlen(str);
-
- err = -ENOENT;
-
- if (page1 && len >= 16)
- err = decode_bytes(str, page1, 8);
-
- if (page2 && len >= 33)
- err = decode_bytes(str + 17, page2, 8);
-
- free(str);
-
- return err;
-}
-
int write_lastseen_info(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, struct tm *tm)
{
diff --git a/src/storage.h b/src/storage.h
index 8293ba8..e334828 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -50,8 +50,6 @@ int write_device_name(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *name);
int read_device_name(const char *src, const char *dst, uint8_t dst_type,
char *name);
-int read_remote_features(const bdaddr_t *local, const bdaddr_t *peer,
- unsigned char *page1, unsigned char *page2);
int write_lastseen_info(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, struct tm *tm);
int write_lastused_info(const bdaddr_t *local, const bdaddr_t *peer,
--
1.7.9.5


2012-10-09 12:12:01

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 8/9] adapter: Remove not used btd_adapter_switch_{online,offline} functions

Were used only in Maemo plugin which is now removed.

---
src/adapter.c | 43 -------------------------------------------
src/adapter.h | 2 --
2 files changed, 45 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index f3e381b..e6cb3e9 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3582,49 +3582,6 @@ int btd_adapter_restore_powered(struct btd_adapter *adapter)
return mgmt_set_powered(adapter->dev_id, TRUE);
}

-static gboolean switch_off_timeout(gpointer user_data)
-{
- struct btd_adapter *adapter = user_data;
-
- mgmt_set_powered(adapter->dev_id, FALSE);
- adapter->off_timer = 0;
-
- return FALSE;
-}
-
-int btd_adapter_switch_online(struct btd_adapter *adapter)
-{
- if (adapter->up)
- return -EALREADY;
-
- if (adapter->off_timer)
- off_timer_remove(adapter);
-
- return mgmt_set_powered(adapter->dev_id, TRUE);
-}
-
-int btd_adapter_switch_offline(struct btd_adapter *adapter)
-{
- if (!adapter->up)
- return -EALREADY;
-
- if (adapter->off_timer)
- return 0;
-
- adapter->global_mode = MODE_OFF;
-
- if (adapter->connections == NULL)
- return mgmt_set_powered(adapter->dev_id, FALSE);
-
- g_slist_foreach(adapter->connections,
- (GFunc) device_request_disconnect, NULL);
-
- adapter->off_timer = g_timeout_add_seconds(OFF_TIMER,
- switch_off_timeout, adapter);
-
- return 0;
-}
-
static gboolean disable_auto(gpointer user_data)
{
struct btd_adapter *adapter = user_data;
diff --git a/src/adapter.h b/src/adapter.h
index 9fd034d..cef59d2 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -178,8 +178,6 @@ void btd_adapter_any_release_path(void);
gboolean adapter_powering_down(struct btd_adapter *adapter);

int btd_adapter_restore_powered(struct btd_adapter *adapter);
-int btd_adapter_switch_online(struct btd_adapter *adapter);
-int btd_adapter_switch_offline(struct btd_adapter *adapter);
void btd_adapter_enable_auto_connect(struct btd_adapter *adapter);

typedef ssize_t (*btd_adapter_pin_cb_t) (struct btd_adapter *adapter,
--
1.7.9.5


2012-10-09 12:11:57

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 4/9] storage: Remove not used read_remote_eir

This function is not used. Previously it was used to determine if
remote device is legacy or not.

---
src/storage.c | 41 -----------------------------------------
src/storage.h | 2 --
2 files changed, 43 deletions(-)

diff --git a/src/storage.c b/src/storage.c
index 55dc591..d4189c5 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -435,47 +435,6 @@ done:
return 0;
}

-int read_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
- uint8_t peer_type, uint8_t *data)
-{
- char filename[PATH_MAX + 1], key[18], *str;
- int i;
-
- create_filename(filename, PATH_MAX, local, "eir");
-
- ba2str(peer, key);
- sprintf(&key[17], "#%hhu", peer_type);
-
- str = textfile_get(filename, key);
- if (str != NULL)
- goto done;
-
- /* Try old format (address only) */
- key[17] = '\0';
-
- str = textfile_get(filename, key);
- if (!str)
- return -ENOENT;
-
-done:
- if (!data) {
- free(str);
- return 0;
- }
-
- if (strlen(str) < 480) {
- free(str);
- return -EIO;
- }
-
- for (i = 0; i < HCI_MAX_EIR_LENGTH; i++)
- sscanf(str + (i * 2), "%02hhX", &data[i]);
-
- free(str);
-
- return 0;
-}
-
int write_version_info(const bdaddr_t *local, const bdaddr_t *peer,
uint16_t manufacturer, uint8_t lmp_ver,
uint16_t lmp_subver)
diff --git a/src/storage.h b/src/storage.h
index d6aa8ec..0a91d47 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -50,8 +50,6 @@ int write_device_name(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *name);
int read_device_name(const char *src, const char *dst, uint8_t dst_type,
char *name);
-int read_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
- uint8_t peer_type, uint8_t *data);
int write_version_info(const bdaddr_t *local, const bdaddr_t *peer,
uint16_t manufacturer, uint8_t lmp_ver,
uint16_t lmp_subver);
--
1.7.9.5


2012-10-09 12:11:58

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 5/9] storage: Remove not used write_version_info

This was used in hciops only.

---
src/storage.c | 17 -----------------
src/storage.h | 3 ---
2 files changed, 20 deletions(-)

diff --git a/src/storage.c b/src/storage.c
index d4189c5..4dc2d17 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -435,23 +435,6 @@ done:
return 0;
}

-int write_version_info(const bdaddr_t *local, const bdaddr_t *peer,
- uint16_t manufacturer, uint8_t lmp_ver,
- uint16_t lmp_subver)
-{
- char filename[PATH_MAX + 1], addr[18], str[16];
-
- memset(str, 0, sizeof(str));
- sprintf(str, "%d %d %d", manufacturer, lmp_ver, lmp_subver);
-
- create_filename(filename, PATH_MAX, local, "manufacturers");
-
- create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-
- ba2str(peer, addr);
- return textfile_put(filename, addr, str);
-}
-
int write_features_info(const bdaddr_t *local, const bdaddr_t *peer,
unsigned char *page1, unsigned char *page2)
{
diff --git a/src/storage.h b/src/storage.h
index 0a91d47..e19e67f 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -50,9 +50,6 @@ int write_device_name(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *name);
int read_device_name(const char *src, const char *dst, uint8_t dst_type,
char *name);
-int write_version_info(const bdaddr_t *local, const bdaddr_t *peer,
- uint16_t manufacturer, uint8_t lmp_ver,
- uint16_t lmp_subver);
int write_features_info(const bdaddr_t *local, const bdaddr_t *peer,
unsigned char *page1, unsigned char *page2);
int read_remote_features(const bdaddr_t *local, const bdaddr_t *peer,
--
1.7.9.5


2012-10-09 12:11:54

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 1/9] Simplify checking if found device is legacy

This simplify code by removing pairing_is_legacy() function which was
always returning FALSE due to EIR being always present with mgmt
interface (this also fix small issue when first DeviceFound signal
emitted for legacy device was having LegacyPairing set to false).

Instead of using btd_event_set_legacy_pairing to set legacy pairing in
remote_dev_info handle it in similar way to rssi.

---
src/adapter.c | 52 ++++++++++++----------------------------------------
src/adapter.h | 6 +++---
src/event.c | 22 +++-------------------
src/event.h | 4 ++--
src/mgmt.c | 11 +++--------
5 files changed, 23 insertions(+), 72 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index 6b28651..abb9691 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2947,6 +2947,7 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
const char *icon, *paddr = peer_addr;
dbus_bool_t paired = FALSE, trusted = FALSE;
dbus_int16_t rssi = dev->rssi;
+ dbus_bool_t legacy = dev->legacy;
char *alias;
size_t uuid_count;

@@ -2985,8 +2986,6 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
return;
}

- dev->legacy = FALSE;
-
if (read_remote_appearance(&adapter->bdaddr, &dev->bdaddr,
dev->bdaddr_type, &app) == 0)
icon = gap_appearance_to_icon(app);
@@ -3002,7 +3001,7 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
"RSSI", DBUS_TYPE_INT16, &rssi,
"Name", DBUS_TYPE_STRING, &dev->name,
"Alias", DBUS_TYPE_STRING, &alias,
- "LegacyPairing", DBUS_TYPE_BOOLEAN, &dev->legacy,
+ "LegacyPairing", DBUS_TYPE_BOOLEAN, &legacy,
"Paired", DBUS_TYPE_BOOLEAN, &paired,
"UUIDs", DBUS_TYPE_ARRAY, &dev->uuids, uuid_count,
NULL);
@@ -3016,7 +3015,7 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
"RSSI", DBUS_TYPE_INT16, &rssi,
"Name", DBUS_TYPE_STRING, &dev->name,
"Alias", DBUS_TYPE_STRING, &alias,
- "LegacyPairing", DBUS_TYPE_BOOLEAN, &dev->legacy,
+ "LegacyPairing", DBUS_TYPE_BOOLEAN, &legacy,
"Paired", DBUS_TYPE_BOOLEAN, &paired,
"Trusted", DBUS_TYPE_BOOLEAN, &trusted,
"UUIDs", DBUS_TYPE_ARRAY, &dev->uuids, uuid_count,
@@ -3071,26 +3070,6 @@ static void dev_prepend_uuid(gpointer data, gpointer user_data)
dev->services = g_slist_prepend(dev->services, g_strdup(new_uuid));
}

-static gboolean pairing_is_legacy(const bdaddr_t *local, const bdaddr_t *peer,
- const uint8_t *eir, const char *name)
-{
- unsigned char features[8];
-
- if (eir)
- return FALSE;
-
- if (name == NULL)
- return TRUE;
-
- if (read_remote_features(local, peer, NULL, features) < 0)
- return TRUE;
-
- if (features[0] & 0x01)
- return FALSE;
- else
- return TRUE;
-}
-
static char *read_stored_data(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *file)
{
@@ -3162,13 +3141,13 @@ static gboolean connect_pending_cb(gpointer user_data)
void adapter_update_found_devices(struct btd_adapter *adapter,
const bdaddr_t *bdaddr,
uint8_t bdaddr_type, int8_t rssi,
- uint8_t confirm_name, uint8_t *data,
- uint8_t data_len)
+ uint8_t confirm_name, gboolean legacy,
+ uint8_t *data, uint8_t data_len)
{
struct remote_dev_info *dev;
struct eir_data eir_data;
char *alias, *name;
- gboolean legacy, name_known;
+ gboolean name_known;
int err;
GSList *l;

@@ -3203,7 +3182,7 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
goto done;
}

- if (dev->rssi != rssi)
+ if (dev->rssi != rssi || dev->legacy != legacy)
goto done;

eir_data_free(&eir_data);
@@ -3215,19 +3194,11 @@ void adapter_update_found_devices(struct btd_adapter *adapter,

name = read_stored_data(&adapter->bdaddr, bdaddr, bdaddr_type, "names");

- if (bdaddr_type == BDADDR_BREDR) {
- legacy = pairing_is_legacy(&adapter->bdaddr, bdaddr, data,
- name);
-
- if (!name && main_opts.name_resolv &&
- adapter_has_discov_sessions(adapter))
- name_known = FALSE;
- else
- name_known = TRUE;
- } else {
- legacy = FALSE;
+ if (bdaddr_type == BDADDR_BREDR && !name && main_opts.name_resolv &&
+ adapter_has_discov_sessions(adapter))
+ name_known = FALSE;
+ else
name_known = TRUE;
- }

if (confirm_name)
mgmt_confirm_name(adapter->dev_id, bdaddr, bdaddr_type,
@@ -3262,6 +3233,7 @@ void adapter_update_found_devices(struct btd_adapter *adapter,

done:
dev->rssi = rssi;
+ dev->legacy = legacy;

adapter->found_devices = g_slist_sort(adapter->found_devices,
(GCompareFunc) dev_rssi_cmp);
diff --git a/src/adapter.h b/src/adapter.h
index 72a9988..a089075 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -82,7 +82,7 @@ struct remote_dev_info {
uint32_t class;
char *name;
char *alias;
- dbus_bool_t legacy;
+ gboolean legacy;
char **uuids;
size_t uuid_count;
GSList *services;
@@ -128,8 +128,8 @@ struct remote_dev_info *adapter_search_found_devices(struct btd_adapter *adapter
void adapter_update_found_devices(struct btd_adapter *adapter,
const bdaddr_t *bdaddr,
uint8_t bdaddr_type, int8_t rssi,
- uint8_t confirm_name, uint8_t *data,
- uint8_t data_len);
+ uint8_t confirm_name, gboolean legacy,
+ uint8_t *data, uint8_t data_len);
void adapter_emit_device_found(struct btd_adapter *adapter,
struct remote_dev_info *dev);
void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode);
diff --git a/src/event.c b/src/event.c
index 0ebab19..d552a0f 100644
--- a/src/event.c
+++ b/src/event.c
@@ -244,7 +244,8 @@ static void update_lastused(bdaddr_t *sba, bdaddr_t *dba, uint8_t dba_type)

void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
int8_t rssi, uint8_t confirm_name,
- uint8_t *data, uint8_t data_len)
+ gboolean legacy, uint8_t *data,
+ uint8_t data_len)
{
struct btd_adapter *adapter;

@@ -260,24 +261,7 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type
write_remote_eir(local, peer, bdaddr_type, data, data_len);

adapter_update_found_devices(adapter, peer, bdaddr_type, rssi,
- confirm_name, data, data_len);
-}
-
-void btd_event_set_legacy_pairing(bdaddr_t *local, bdaddr_t *peer,
- gboolean legacy)
-{
- struct btd_adapter *adapter;
- struct remote_dev_info *dev;
-
- adapter = manager_find_adapter(local);
- if (!adapter) {
- error("No matching adapter found");
- return;
- }
-
- dev = adapter_search_found_devices(adapter, peer);
- if (dev)
- dev->legacy = legacy;
+ confirm_name, legacy, data, data_len);
}

void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name)
diff --git a/src/event.h b/src/event.h
index 6adf1f5..a9afa1e 100644
--- a/src/event.h
+++ b/src/event.h
@@ -25,8 +25,8 @@
int btd_event_request_pin(bdaddr_t *sba, bdaddr_t *dba, gboolean secure);
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
int8_t rssi, uint8_t confirm_name,
- uint8_t *data, uint8_t data_len);
-void btd_event_set_legacy_pairing(bdaddr_t *local, bdaddr_t *peer, gboolean legacy);
+ gboolean legacy, uint8_t *data,
+ uint8_t data_len);
void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name);
void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
char *name, uint32_t class);
diff --git a/src/mgmt.c b/src/mgmt.c
index d3f7809..9353c7d 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
@@ -1635,6 +1635,7 @@ static void mgmt_device_found(int sk, uint16_t index, void *buf, size_t len)
uint16_t eir_len;
uint8_t *eir;
gboolean confirm_name;
+ gboolean legacy;

if (len < sizeof(*ev)) {
error("mgmt_device_found too short (%zu bytes)", len);
@@ -1666,19 +1667,13 @@ static void mgmt_device_found(int sk, uint16_t index, void *buf, size_t len)
DBG("hci%u addr %s, rssi %d flags 0x%04x eir_len %u",
index, addr, ev->rssi, flags, eir_len);

- if (flags & MGMT_DEV_FOUND_LEGACY_PAIRING)
- btd_event_set_legacy_pairing(&info->bdaddr, &ev->addr.bdaddr,
- TRUE);
- else
- btd_event_set_legacy_pairing(&info->bdaddr, &ev->addr.bdaddr,
- FALSE);
-
confirm_name = (flags & MGMT_DEV_FOUND_CONFIRM_NAME);
+ legacy = (flags & MGMT_DEV_FOUND_LEGACY_PAIRING) ? TRUE : FALSE;

btd_event_device_found(&info->bdaddr, &ev->addr.bdaddr,
ev->addr.type,
ev->rssi, confirm_name,
- eir, eir_len);
+ legacy, eir, eir_len);
}

static void mgmt_discovering(int sk, uint16_t index, void *buf, size_t len)
--
1.7.9.5


2012-10-09 12:11:59

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 6/9] storage: Remove not used write_features_info

This was used in hciops.

---
src/storage.c | 32 --------------------------------
src/storage.h | 2 --
2 files changed, 34 deletions(-)

diff --git a/src/storage.c b/src/storage.c
index 4dc2d17..297aba7 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -435,38 +435,6 @@ done:
return 0;
}

-int write_features_info(const bdaddr_t *local, const bdaddr_t *peer,
- unsigned char *page1, unsigned char *page2)
-{
- char filename[PATH_MAX + 1], addr[18];
- char str[] = "0000000000000000 0000000000000000";
- char *old_value;
- int i;
-
- ba2str(peer, addr);
-
- create_filename(filename, PATH_MAX, local, "features");
- create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-
- old_value = textfile_get(filename, addr);
-
- if (page1)
- for (i = 0; i < 8; i++)
- sprintf(str + (i * 2), "%2.2X", page1[i]);
- else if (old_value && strlen(old_value) >= 16)
- strncpy(str, old_value, 16);
-
- if (page2)
- for (i = 0; i < 8; i++)
- sprintf(str + 17 + (i * 2), "%2.2X", page2[i]);
- else if (old_value && strlen(old_value) >= 33)
- strncpy(str + 17, old_value + 17, 16);
-
- free(old_value);
-
- return textfile_put(filename, addr, str);
-}
-
static int decode_bytes(const char *str, unsigned char *bytes, size_t len)
{
unsigned int i;
diff --git a/src/storage.h b/src/storage.h
index e19e67f..8293ba8 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -50,8 +50,6 @@ int write_device_name(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *name);
int read_device_name(const char *src, const char *dst, uint8_t dst_type,
char *name);
-int write_features_info(const bdaddr_t *local, const bdaddr_t *peer,
- unsigned char *page1, unsigned char *page2);
int read_remote_features(const bdaddr_t *local, const bdaddr_t *peer,
unsigned char *page1, unsigned char *page2);
int write_lastseen_info(const bdaddr_t *local, const bdaddr_t *peer,
--
1.7.9.5


2012-10-09 12:11:56

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 3/9] event: Don't store EIR in btd_event_device_found

It is never read and was usefull only to gather EIR data for testing
which can also be done with hcidump etc.

---
src/event.c | 3 ---
src/storage.c | 21 ---------------------
src/storage.h | 2 --
3 files changed, 26 deletions(-)

diff --git a/src/event.c b/src/event.c
index ac7140c..bd5ee1e 100644
--- a/src/event.c
+++ b/src/event.c
@@ -257,9 +257,6 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type

update_lastseen(local, peer, bdaddr_type);

- if (data)
- write_remote_eir(local, peer, bdaddr_type, data, data_len);
-
adapter_update_found_devices(adapter, peer, bdaddr_type, rssi,
confirm_name, legacy, data, data_len);
}
diff --git a/src/storage.c b/src/storage.c
index df6b0aa..55dc591 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -435,27 +435,6 @@ done:
return 0;
}

-int write_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
- uint8_t peer_type, uint8_t *data,
- uint8_t data_len)
-{
- char filename[PATH_MAX + 1], key[20], str[481];
- int i;
-
- memset(str, 0, sizeof(str));
- for (i = 0; i < data_len; i++)
- sprintf(str + (i * 2), "%2.2X", data[i]);
-
- create_filename(filename, PATH_MAX, local, "eir");
-
- create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-
- ba2str(peer, key);
- sprintf(&key[17], "#%hhu", peer_type);
-
- return textfile_put(filename, key, str);
-}
-
int read_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, uint8_t *data)
{
diff --git a/src/storage.h b/src/storage.h
index 741b8a7..d6aa8ec 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -50,8 +50,6 @@ int write_device_name(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, const char *name);
int read_device_name(const char *src, const char *dst, uint8_t dst_type,
char *name);
-int write_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
- uint8_t peer_type, uint8_t *data, uint8_t data_len);
int read_remote_eir(const bdaddr_t *local, const bdaddr_t *peer,
uint8_t peer_type, uint8_t *data);
int write_version_info(const bdaddr_t *local, const bdaddr_t *peer,
--
1.7.9.5


2012-10-09 12:11:55

by Szymon Janc

[permalink] [raw]
Subject: [PATCH 2/9] Pass confirm name as gboolean value

confirm_name is a boolean value and can be pass as such instead of
uint8_t.

---
src/adapter.c | 2 +-
src/adapter.h | 2 +-
src/event.c | 2 +-
src/event.h | 2 +-
src/mgmt.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index abb9691..f3e381b 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3141,7 +3141,7 @@ static gboolean connect_pending_cb(gpointer user_data)
void adapter_update_found_devices(struct btd_adapter *adapter,
const bdaddr_t *bdaddr,
uint8_t bdaddr_type, int8_t rssi,
- uint8_t confirm_name, gboolean legacy,
+ gboolean confirm_name, gboolean legacy,
uint8_t *data, uint8_t data_len)
{
struct remote_dev_info *dev;
diff --git a/src/adapter.h b/src/adapter.h
index a089075..9fd034d 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -128,7 +128,7 @@ struct remote_dev_info *adapter_search_found_devices(struct btd_adapter *adapter
void adapter_update_found_devices(struct btd_adapter *adapter,
const bdaddr_t *bdaddr,
uint8_t bdaddr_type, int8_t rssi,
- uint8_t confirm_name, gboolean legacy,
+ gboolean confirm_name, gboolean legacy,
uint8_t *data, uint8_t data_len);
void adapter_emit_device_found(struct btd_adapter *adapter,
struct remote_dev_info *dev);
diff --git a/src/event.c b/src/event.c
index d552a0f..ac7140c 100644
--- a/src/event.c
+++ b/src/event.c
@@ -243,7 +243,7 @@ static void update_lastused(bdaddr_t *sba, bdaddr_t *dba, uint8_t dba_type)
}

void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
- int8_t rssi, uint8_t confirm_name,
+ int8_t rssi, gboolean confirm_name,
gboolean legacy, uint8_t *data,
uint8_t data_len)
{
diff --git a/src/event.h b/src/event.h
index a9afa1e..a7c3ce2 100644
--- a/src/event.h
+++ b/src/event.h
@@ -24,7 +24,7 @@

int btd_event_request_pin(bdaddr_t *sba, bdaddr_t *dba, gboolean secure);
void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
- int8_t rssi, uint8_t confirm_name,
+ int8_t rssi, gboolean confirm_name,
gboolean legacy, uint8_t *data,
uint8_t data_len);
void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name);
diff --git a/src/mgmt.c b/src/mgmt.c
index 9353c7d..719af06 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
@@ -1667,7 +1667,7 @@ static void mgmt_device_found(int sk, uint16_t index, void *buf, size_t len)
DBG("hci%u addr %s, rssi %d flags 0x%04x eir_len %u",
index, addr, ev->rssi, flags, eir_len);

- confirm_name = (flags & MGMT_DEV_FOUND_CONFIRM_NAME);
+ confirm_name = (flags & MGMT_DEV_FOUND_CONFIRM_NAME) ? TRUE : FALSE;
legacy = (flags & MGMT_DEV_FOUND_LEGACY_PAIRING) ? TRUE : FALSE;

btd_event_device_found(&info->bdaddr, &ev->addr.bdaddr,
--
1.7.9.5