Diff between 68a2dd1ba822014ae10ae367dcf8e110b5e3f65c and 4522ac85dd6dc1db4d49507330b4abc3bbaf4e6c
Changed Files
| File | Additions | Deletions | Status |
| src/service.c | +12 | -0 | modified |
Full Patch
diff --git a/src/service.c b/src/service.c
index cae2804..2ed72fb 100644
--- a/src/service.c
+++ b/src/service.c
@@ -184,6 +184,18 @@ int service_accept(struct btd_service *service)
char addr[18];
int err;
+ switch (service->state) {
+ case BTD_SERVICE_STATE_UNAVAILABLE:
+ return -EINVAL;
+ case BTD_SERVICE_STATE_DISCONNECTED:
+ break;
+ case BTD_SERVICE_STATE_CONNECTING:
+ case BTD_SERVICE_STATE_CONNECTED:
+ return -EALREADY;
+ case BTD_SERVICE_STATE_DISCONNECTING:
+ return -EBUSY;
+ }
+
if (!service->profile->accept)
goto done;