profiles/audio: Fix propagation of EHOSTDOWN error 41/22541/1 submit/tizen/20140606.095742
authorAndrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Wed, 4 Jun 2014 15:14:45 +0000 (17:14 +0200)
committerSebastian Chlad <sebastian.chlad@tieto.com>
Thu, 5 Jun 2014 14:29:56 +0000 (16:29 +0200)
EHOSTDOWN error is now overwritten by EIO and once it's passed to
device_profile_connected it triggers connection of another profiles
while it should actually stop connecting them.

Change-Id: I2a2f802c582214170f7a2c8d89a550c72d07efab
Signed-off-by: Sebastian Chlad <sebastianx.chlad@intel.com>
profiles/audio/sink.c
profiles/audio/source.c

index d16af23..da8992e 100644 (file)
@@ -229,11 +229,14 @@ static void discovery_complete(struct avdtp *session, GSList *seps, struct avdtp
        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;
        }
 
index 843b3e8..b0abaa3 100644 (file)
@@ -229,11 +229,14 @@ static void discovery_complete(struct avdtp *session, GSList *seps, struct avdtp
        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;
        }