summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/oss-util.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/modules/oss-util.c b/src/modules/oss-util.c
index fac39e7b..2c573b2f 100644
--- a/src/modules/oss-util.c
+++ b/src/modules/oss-util.c
@@ -56,9 +56,11 @@ int pa_oss_open(const char *device, int *mode, int* pcaps) {
}
if (*tcaps & DSP_CAP_DUPLEX)
- return fd;
+ goto success;
- goto fail;
+ pa_log_warn(__FILE__": '%s' doesn't support full duplex", device);
+
+ close(fd);
}
if ((fd = open(device, (*mode = O_WRONLY)|O_NDELAY)) < 0) {
@@ -74,6 +76,8 @@ int pa_oss_open(const char *device, int *mode, int* pcaps) {
}
}
+success:
+
if (pcaps) {
if (ioctl(fd, SNDCTL_DSP_GETCAPS, pcaps) < 0) {
pa_log(__FILE__": SNDCTL_DSP_GETCAPS: %s", strerror(errno));