summaryrefslogtreecommitdiffstats
path: root/src/polypcore/iochannel.c
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2006-05-11 11:08:58 +0000
committerPierre Ossman <ossman@cendio.se>2006-05-11 11:08:58 +0000
commit48d66cd5e89764b00fe225db4823b3392a759942 (patch)
tree0e60a5cf549d07f6be53e60fa83b355fd77a7094 /src/polypcore/iochannel.c
parent12d4b5d952c7a284fd081966a02d34d94dd6be10 (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.c28
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);