From 906da085cf6a15173b1ffdf698159d55fd0d67fe Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 12 Jul 2007 15:25:20 +0000 Subject: Changes for W32 --- assuan/ChangeLog | 5 +++++ assuan/assuan-io.c | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'assuan') diff --git a/assuan/ChangeLog b/assuan/ChangeLog index 0df0a794..9bad1ee2 100644 --- a/assuan/ChangeLog +++ b/assuan/ChangeLog @@ -1,3 +1,8 @@ +2007-07-12 Werner Koch + + * assuan-io.c (_assuan_simple_write, _assuan_simple_read): Map + ERROR_BROKEN_PIPE to EPIPE. + 2007-07-08 Marcus Brinkmann * assuan-defs.h (struct assuan_context_s): Have partial peercred diff --git a/assuan/assuan-io.c b/assuan/assuan-io.c index 6d895791..066231fb 100644 --- a/assuan/assuan-io.c +++ b/assuan/assuan-io.c @@ -65,7 +65,11 @@ _assuan_simple_read (assuan_context_t ctx, void *buffer, size_t size) n = ReadFile ((HANDLE)ctx->inbound.fd, buffer, size, &nread, NULL); if (!n) { - errno = EIO; /* FIXME: We should have a proper mapping. */ + switch (GetLastError()) + { + case ERROR_BROKEN_PIPE: errno = EPIPE; break; + default: errno = EIO; + } n = -1; } else @@ -94,7 +98,12 @@ _assuan_simple_write (assuan_context_t ctx, const void *buffer, size_t size) n = WriteFile ((HANDLE)ctx->outbound.fd, buffer, size, &nwrite, NULL); if (!n) { - errno = EIO; /* FIXME: We should have a proper mapping. */ + switch (GetLastError ()) + { + case ERROR_BROKEN_PIPE: + case ERROR_NO_DATA: errno = EPIPE; break; + default: errno = EIO; break; + } n = -1; } else -- cgit v1.2.3