summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-10-04 12:24:29 +0000
committerWerner Koch <wk@gnupg.org>2007-10-04 12:24:29 +0000
commit7e4a5b0d2825ae1e9bf1d2e5966b653f84cbf753 (patch)
treee0b1c561d8a71a76c6e41106a2f312bd28b29be7 /src
parent28f7b6e0413097e91d9f28da028064d1ba9071eb (diff)
downloadlibassuan-7e4a5b0d2825ae1e9bf1d2e5966b653f84cbf753.tar.gz
Better error mapping.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/assuan-buffer.c5
-rw-r--r--src/assuan-socket-connect.c2
-rwxr-xr-xsrc/mkerrors10
4 files changed, 18 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fa10021..db16a34 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-04 Werner Koch <wk@g10code.com>
+
+ * mkerrors: Map EAGAIN to GPG_ERR_EAGAIN for read and write
+ errors.
+
2007-10-02 Werner Koch <wk@g10code.com>
* assuan-io.c (_assuan_io_read) [W32]: Map WSAEWOULDBLOCK to EAGAIN.
diff --git a/src/assuan-buffer.c b/src/assuan-buffer.c
index 552bb7b..8a9faf1 100644
--- a/src/assuan-buffer.c
+++ b/src/assuan-buffer.c
@@ -133,10 +133,11 @@ _assuan_read_line (assuan_context_t ctx)
if (rc)
{
if (ctx->log_fp)
- fprintf (ctx->log_fp, "%s[%u.%d] DBG: <- [Error: %s]\n",
- assuan_get_assuan_log_prefix (),
+ fprintf (ctx->log_fp, "%s[%u.%d] DBG: <- [Error: %s]\n",
+ assuan_get_assuan_log_prefix (),
(unsigned int)getpid (), (int)ctx->inbound.fd,
strerror (errno));
+
return _assuan_error (ASSUAN_Read_Error);
}
if (!nread)
diff --git a/src/assuan-socket-connect.c b/src/assuan-socket-connect.c
index 828f6ea..0b9bdbb 100644
--- a/src/assuan-socket-connect.c
+++ b/src/assuan-socket-connect.c
@@ -85,7 +85,7 @@ assuan_socket_connect (assuan_context_t *r_ctx,
/* Make a connection to the Unix domain socket NAME and return a new
Assuan context in CTX. SERVER_PID is currently not used but may
become handy in the future. With flags set to 1 sendmsg and
- recvmesg are used. */
+ recvmsg are used. */
assuan_error_t
assuan_socket_connect_ext (assuan_context_t *r_ctx,
const char *name, pid_t server_pid,
diff --git a/src/mkerrors b/src/mkerrors
index 735b794..feded4f 100755
--- a/src/mkerrors
+++ b/src/mkerrors
@@ -93,6 +93,9 @@ _assuan_error (int oldcode)
switch (errno)
{
case 0: n = 16381; /*GPG_ERR_MISSING_ERRNO*/ break;
+ case EAGAIN:
+ n = (6 | (1 << 15));
+ break;
default: n = 270; /*GPG_ERR_ASS_READ_ERROR*/ break;
}
break;
@@ -101,6 +104,9 @@ _assuan_error (int oldcode)
switch (errno)
{
case 0: n = 16381; /*GPG_ERR_MISSING_ERRNO*/ break;
+ case EAGAIN:
+ n = (6 | (1 << 15));
+ break;
default: n = 271; /*GPG_ERR_ASS_WRITE_ERROR*/ break;
}
break;
@@ -114,7 +120,9 @@ _assuan_error (int oldcode)
an error is indeed returned. */
n = 16381; /*GPG_ERR_MISSING_ERRNO*/
break;
- case ENOMEM: n = (1 << 15) | 86; break;
+ case ENOMEM:
+ n = (86 | (1 << 15));
+ break;
default:
n = 16382; /*GPG_ERR_UNKNOWN_ERRNO*/
break;