[nas] isolate input/output?
auerswal at unix-ag.uni-kl.de
Sun Mar 11 06:31:28 MDT 2007
On Sun, Mar 11, 2007 at 01:09:06PM +0100, Erik Auerswald wrote:
> On Sat, Mar 10, 2007 at 11:51:05PM -0500, Paul Fox wrote:
> > first, a typo bug in openDevice(), in auvoxware.c.
> I think you're right, this is a typo.
I've just tested this, Paul's patch should be applied.
> > however, in practice,
> > i don't think we ever execute this code. (i found this by inspection --
> > i can't make it fail.)
> I'll take a look at it.
This code is executed.
> > setting it to either a nonexistent
> > device (/dev/dsp1) or to the same device as output (/dev/dsp)
> > causes nasd to loop 5 times, with timeout, when trying to open
> > the input device.
The real problem is that nasd always tries to open both the input and
output devices. I didn't remember this, my former answers have been
wrong in regard to this. Sorry.
> This should happen when connecting with an input client only, I'd assume
> that a usable workaround is to never do so. As long as the device is
> not kept open it should be usable by other apps (I did just test this by
> starting nasd with /dev/dsp as in- and output device and then (without
> NAS clients) doing a "cat /dev/dsp > recording" which worked).
Whenever _any_ NAS client connects to the server, both devices will be
opened, so playing sound via the server will inhibit other applications
> If this should not work for you someone would need to write a patch
> to implement disabling of th input (or rather one of output and input)
I'll try to come up with a simple patch for this.
It's hard to avoid programming overcomplicated monoliths if none of your
programs can talk to each other.
-- Eric S. Raymond
More information about the Nas