@@ -47,8 +47,6 @@ BluezLEAdvertisement1 * BluezAdvertisement::CreateLEAdvertisement()
47
47
GVariantBuilder serviceDataBuilder;
48
48
GVariantBuilder serviceUUIDsBuilder;
49
49
GAutoPtr<char > debugStr;
50
- const char * localNamePtr;
51
- char localName[32 ];
52
50
53
51
ChipLogDetail (DeviceLayer, " Create BLE adv object at %s" , mpAdvPath);
54
52
object = bluez_object_skeleton_new (mpAdvPath);
@@ -62,13 +60,6 @@ BluezLEAdvertisement1 * BluezAdvertisement::CreateLEAdvertisement()
62
60
g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, &mDeviceIdInfo , sizeof (mDeviceIdInfo ), sizeof (uint8_t )));
63
61
g_variant_builder_add (&serviceUUIDsBuilder, " s" , mpAdvUUID);
64
62
65
- localNamePtr = mpAdapterName;
66
- if (localNamePtr == nullptr )
67
- {
68
- g_snprintf (localName, sizeof (localName), " %s%04x" , CHIP_DEVICE_CONFIG_BLE_DEVICE_NAME_PREFIX, getpid () & 0xffff );
69
- localNamePtr = localName;
70
- }
71
-
72
63
serviceData = g_variant_builder_end (&serviceDataBuilder);
73
64
serviceUUID = g_variant_builder_end (&serviceUUIDsBuilder);
74
65
@@ -88,8 +79,7 @@ BluezLEAdvertisement1 * BluezAdvertisement::CreateLEAdvertisement()
88
79
if (mAdvType & BLUEZ_ADV_TYPE_SCANNABLE)
89
80
bluez_leadvertisement1_set_discoverable_timeout (adv, UINT16_MAX);
90
81
91
- // advertising name corresponding to the PID and object path, for debug purposes
92
- bluez_leadvertisement1_set_local_name (adv, localNamePtr);
82
+ bluez_leadvertisement1_set_local_name (adv, mAdvName );
93
83
bluez_leadvertisement1_set_service_uuids (adv, serviceUUID);
94
84
95
85
// 0xffff means no appearance
@@ -134,24 +124,33 @@ CHIP_ERROR BluezAdvertisement::InitImpl()
134
124
}
135
125
136
126
CHIP_ERROR BluezAdvertisement::Init (const BluezEndpoint & aEndpoint, ChipAdvType aAdvType, const char * aAdvUUID,
137
- uint32_t aAdvDurationMs)
127
+ uint32_t aAdvDurationMs, const char * aAdvName )
138
128
{
139
129
GAutoPtr<char > rootPath;
140
130
CHIP_ERROR err;
141
131
142
132
VerifyOrExit (mpAdv == nullptr , err = CHIP_ERROR_INCORRECT_STATE;
143
133
ChipLogError (DeviceLayer, " FAIL: BLE advertisement already initialized in %s" , __func__));
144
134
145
- mpRoot = reinterpret_cast <GDBusObjectManagerServer *>(g_object_ref (aEndpoint.GetGattApplicationObjectManager ()));
146
- mpAdapter = reinterpret_cast <BluezAdapter1 *>(g_object_ref (aEndpoint.GetAdapter ()));
147
- mpAdapterName = g_strdup (aEndpoint.GetAdapterName ());
135
+ mpRoot = reinterpret_cast <GDBusObjectManagerServer *>(g_object_ref (aEndpoint.GetGattApplicationObjectManager ()));
136
+ mpAdapter = reinterpret_cast <BluezAdapter1 *>(g_object_ref (aEndpoint.GetAdapter ()));
148
137
149
138
g_object_get (G_OBJECT (mpRoot), " object-path" , &MakeUniquePointerReceiver (rootPath).Get (), nullptr );
150
139
mpAdvPath = g_strdup_printf (" %s/advertising" , rootPath.get ());
151
140
mAdvType = aAdvType;
152
141
mpAdvUUID = g_strdup (aAdvUUID);
153
142
mAdvDurationMs = aAdvDurationMs;
154
143
144
+ if (aAdvName != nullptr )
145
+ {
146
+ g_snprintf (mAdvName , sizeof (mAdvName ), " %s" , aAdvName);
147
+ }
148
+ else
149
+ {
150
+ // Advertising name corresponding to the PID, for debug purposes.
151
+ g_snprintf (mAdvName , sizeof (mAdvName ), " %s%04x" , CHIP_DEVICE_CONFIG_BLE_DEVICE_NAME_PREFIX, getpid () & 0xffff );
152
+ }
153
+
155
154
err = ConfigurationMgr ().GetBLEDeviceIdentificationInfo (mDeviceIdInfo );
156
155
ReturnErrorOnFailure (err);
157
156
@@ -209,8 +208,6 @@ void BluezAdvertisement::Shutdown()
209
208
210
209
g_free (mpAdvPath);
211
210
mpAdvPath = nullptr ;
212
- g_free (mpAdapterName);
213
- mpAdapterName = nullptr ;
214
211
g_free (mpAdvUUID);
215
212
mpAdvUUID = nullptr ;
216
213
0 commit comments