summaryrefslogtreecommitdiffstats
path: root/input/device.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2008-09-13 19:02:22 -0300
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2008-09-13 19:02:22 -0300
commit8e6cc8d1c48d343500bbfc3ab2990e82708831bb (patch)
treeec0a3bcfbaad03f830e2d1501fcb153505f712b9 /input/device.c
parentf0e96d61d2b74cd809e91597d0e08aee8fe68cad (diff)
Input: Checking if the link is already encrypted
Diffstat (limited to 'input/device.c')
-rw-r--r--input/device.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/input/device.c b/input/device.c
index 0039c4f2..f4748dbf 100644
--- a/input/device.c
+++ b/input/device.c
@@ -641,15 +641,19 @@ static int hidp_add_connection(const bdaddr_t *src, const bdaddr_t *dst, int ctr
if (name)
strncpy(req->name, name, 128);
+ /* Encryption is mandatory for keyboards */
if (req->subclass & 0x40) {
err = bt_acl_encrypt(src, dst, encrypt_completed, req);
- if (err < 0) {
+ if (err == 0) {
+ /* Waiting async encryption */
+ return 0;
+ } else if (err != -EALREADY) {
error("bt_acl_encrypt(): %s(%d)", strerror(-err), -err);
goto cleanup;
}
- /* Waiting async encryption */
- return 0;
+ /* Link already encrypted - reset error */
+ err = 0;
}
/* Encryption not required */