diff options
author | Werner Koch <[email protected]> | 2007-07-12 15:25:20 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2007-07-12 15:25:20 +0000 |
commit | 906da085cf6a15173b1ffdf698159d55fd0d67fe (patch) | |
tree | f1e5e25de81f139aa8592828d239e9f62d8abbd7 /assuan/assuan-io.c | |
parent | 2007-07-10 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-906da085cf6a15173b1ffdf698159d55fd0d67fe.tar.gz gpgme-906da085cf6a15173b1ffdf698159d55fd0d67fe.zip |
Changes for W32
Diffstat (limited to '')
-rw-r--r-- | assuan/assuan-io.c | 13 |
1 files changed, 11 insertions, 2 deletions
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 |