summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/hci.h9
-rw-r--r--src/bluetooth.c10
2 files changed, 18 insertions, 1 deletions
diff --git a/include/hci.h b/include/hci.h
index 2f959fe20..e7f045964 100644
--- a/include/hci.h
+++ b/include/hci.h
@@ -186,6 +186,15 @@ enum {
#define HCI_QOS_NOT_SUPPORTED 0x27
#define HCI_INSTANT_PASSED 0x28
#define HCI_PAIRING_NOT_SUPPORTED 0x29
+#define HCI_TRANSACTION_COLLISION 0x2a
+#define HCI_QOS_UNACCEPTABLE_PARAMETER 0x2c
+#define HCI_QOS_REJECTED 0x2d
+#define HCI_CLASSIFICATION_NOT_SUPPORTED 0x2e
+#define HCI_INSUFFICIENT_SECURITY 0x2f
+#define HCI_PARAMETER_OUT_OF_RANGE 0x30
+#define HCI_ROLE_SWITCH_PENDING 0x32
+#define HCI_SLOT_VIOLATION 0x34
+#define HCI_ROLE_SWITCH_FAILED 0x35
/* ACL flags */
#define ACL_CONT 0x01
diff --git a/src/bluetooth.c b/src/bluetooth.c
index 00639d2da..20a1aee62 100644
--- a/src/bluetooth.c
+++ b/src/bluetooth.c
@@ -133,19 +133,25 @@ int bt_error(uint16_t code)
case HCI_ACL_CONNECTION_EXISTS:
return EALREADY;
case HCI_COMMAND_DISALLOWED:
+ case HCI_TRANSACTION_COLLISION:
+ case HCI_ROLE_SWITCH_PENDING:
return EBUSY;
case HCI_REJECTED_LIMITED_RESOURCES:
- case HCI_REJECTED_SECURITY:
case HCI_REJECTED_PERSONAL:
+ case HCI_QOS_REJECTED:
return ECONNREFUSED;
case HCI_HOST_TIMEOUT:
return ETIMEDOUT;
case HCI_UNSUPPORTED_FEATURE:
case HCI_QOS_NOT_SUPPORTED:
case HCI_PAIRING_NOT_SUPPORTED:
+ case HCI_CLASSIFICATION_NOT_SUPPORTED:
case HCI_UNSUPPORTED_LMP_PARAMETER_VALUE:
+ case HCI_PARAMETER_OUT_OF_RANGE:
+ case HCI_QOS_UNACCEPTABLE_PARAMETER:
return EOPNOTSUPP;
case HCI_INVALID_PARAMETERS:
+ case HCI_SLOT_VIOLATION:
return EINVAL;
case HCI_OE_USER_ENDED_CONNECTION:
case HCI_OE_LOW_RESOURCES:
@@ -155,7 +161,9 @@ int bt_error(uint16_t code)
return ECONNABORTED;
case HCI_REPEATED_ATTEMPTS:
return ELOOP;
+ case HCI_REJECTED_SECURITY:
case HCI_PAIRING_NOT_ALLOWED:
+ case HCI_INSUFFICIENT_SECURITY:
return EACCES;
case HCI_UNSUPPORTED_REMOTE_FEATURE:
return EPROTONOSUPPORT;