aboutsummaryrefslogtreecommitdiffstats
path: root/assuan
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2007-07-12 15:25:20 +0000
committerWerner Koch <[email protected]>2007-07-12 15:25:20 +0000
commit906da085cf6a15173b1ffdf698159d55fd0d67fe (patch)
treef1e5e25de81f139aa8592828d239e9f62d8abbd7 /assuan
parent2007-07-10 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-906da085cf6a15173b1ffdf698159d55fd0d67fe.tar.gz
gpgme-906da085cf6a15173b1ffdf698159d55fd0d67fe.zip
Changes for W32
Diffstat (limited to 'assuan')
-rw-r--r--assuan/ChangeLog5
-rw-r--r--assuan/assuan-io.c13
2 files changed, 16 insertions, 2 deletions
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 <[email protected]>
+
+ * assuan-io.c (_assuan_simple_write, _assuan_simple_read): Map
+ ERROR_BROKEN_PIPE to EPIPE.
+
2007-07-08 Marcus Brinkmann <[email protected]>
* 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