Skip to content

Commit af3461d

Browse files
authored
Merge pull request #11 from commento/master
Fix services_resolved called twice sometimes
2 parents d265215 + cf6a77b commit af3461d

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

gatt/gatt_linux.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,9 @@ def _connect(self):
272272
self._connect_retry_attempt += 1
273273
try:
274274
self._object.Connect()
275-
if self.is_services_resolved():
275+
if not self.services and self.is_services_resolved():
276276
self.services_resolved()
277+
277278
except dbus.exceptions.DBusException as e:
278279
if (e.get_dbus_name() == 'org.freedesktop.DBus.Error.UnknownObject'):
279280
self.connect_failed(errors.Failed("Device does not exist, check adapter name and MAC address."))
@@ -324,6 +325,7 @@ def disconnect_succeeded(self):
324325
Will be called when the device has disconnected.
325326
"""
326327
self._disconnect_signals()
328+
self.services = []
327329

328330
def _disconnect_signals(self):
329331
if self._properties_signal is not None:
@@ -372,7 +374,8 @@ def properties_changed(self, sender, changed_properties, invalidated_properties)
372374
else:
373375
self.disconnect_succeeded()
374376

375-
if 'ServicesResolved' in changed_properties and changed_properties['ServicesResolved'] == 1:
377+
if ('ServicesResolved' in changed_properties and changed_properties['ServicesResolved'] == 1 and
378+
not self.services):
376379
self.services_resolved()
377380

378381
def services_resolved(self):

0 commit comments

Comments
 (0)