diff options
author | Pierre Ossman <ossman@cendio.se> | 2006-05-11 11:08:58 +0000 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2006-05-11 11:08:58 +0000 |
commit | 48d66cd5e89764b00fe225db4823b3392a759942 (patch) | |
tree | 0e60a5cf549d07f6be53e60fa83b355fd77a7094 /src/polypcore/iochannel.c | |
parent | 12d4b5d952c7a284fd081966a02d34d94dd6be10 (diff) |
Handle pipes on platforms where they are non-existant of broken.
We do this by creating a TCP socket pair instead of a normal pipe. Since
Windows isn't UNIX-y enough to support read()/write() on sockets, we also
need a wrapper to handle read() vs recv() and write() vs send().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@840 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/polypcore/iochannel.c')
-rw-r--r-- | src/polypcore/iochannel.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/polypcore/iochannel.c b/src/polypcore/iochannel.c index 5da7a9a9..623925ac 100644 --- a/src/polypcore/iochannel.c +++ b/src/polypcore/iochannel.c @@ -202,19 +202,7 @@ ssize_t pa_iochannel_write(pa_iochannel*io, const void*data, size_t l) { assert(l); assert(io->ofd >= 0); -#ifdef OS_IS_WIN32 - r = send(io->ofd, data, l, 0); - if (r < 0) { - if (WSAGetLastError() != WSAENOTSOCK) { - errno = WSAGetLastError(); - return r; - } - } - - if (r < 0) -#endif - r = write(io->ofd, data, l); - + r = pa_write(io->ofd, data, l); if (r >= 0) { io->writable = 0; enable_mainloop_sources(io); @@ -229,20 +217,8 @@ ssize_t pa_iochannel_read(pa_iochannel*io, void*data, size_t l) { assert(io); assert(data); assert(io->ifd >= 0); - -#ifdef OS_IS_WIN32 - r = recv(io->ifd, data, l, 0); - if (r < 0) { - if (WSAGetLastError() != WSAENOTSOCK) { - errno = WSAGetLastError(); - return r; - } - } - if (r < 0) -#endif - r = read(io->ifd, data, l); - + r = pa_read(io->ifd, data, l); if (r >= 0) { io->readable = 0; enable_mainloop_sources(io); |