diff --git a/profiles/audio/sink.c b/profiles/audio/sink.c
index d16af23..da8992e 100644
--- a/profiles/audio/sink.c
+++ b/profiles/audio/sink.c
if (err) {
avdtp_unref(sink->session);
sink->session = NULL;
- if (avdtp_error_category(err) == AVDTP_ERRNO
- && avdtp_error_posix_errno(err) != EHOSTDOWN) {
- perr = -EAGAIN;
- } else
- perr = -EIO;
+
+ perr = -avdtp_error_posix_errno(err);
+ if (perr != -EHOSTDOWN) {
+ if (avdtp_error_category(err) == AVDTP_ERRNO)
+ perr = -EAGAIN;
+ else
+ perr = -EIO;
+ }
goto failed;
}
diff --git a/profiles/audio/source.c b/profiles/audio/source.c
index 843b3e8..b0abaa3 100644
--- a/profiles/audio/source.c
+++ b/profiles/audio/source.c
if (err) {
avdtp_unref(source->session);
source->session = NULL;
- if (avdtp_error_category(err) == AVDTP_ERRNO
- && avdtp_error_posix_errno(err) != EHOSTDOWN) {
- perr = -EAGAIN;
- } else
- perr = -EIO;
+
+ perr = -avdtp_error_posix_errno(err);
+ if (perr != -EHOSTDOWN) {
+ if (avdtp_error_category(err) == AVDTP_ERRNO)
+ perr = -EAGAIN;
+ else
+ perr = -EIO;
+ }
goto failed;
}