From d0395d1de508b960fa8d7c83e404d7aacb617c9c Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Fri, 5 Oct 2007 16:44:08 +0000 Subject: 2007-10-05 Marcus Brinkmann * assuan-defs.h (_assuan_error_is_eagain): New prototype. * mkerrors (_assuan_error_is_eagain): New function. * assuan-handler.c (process_next): Leave on EAGAIN. * assuan-handler.c (process_request), assuan-client.c (_assuan_read_from_server), assuan-buffer.c (assuan_read_line): Busy loop over EAGAIN. --- src/assuan-client.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/assuan-client.c') diff --git a/src/assuan-client.c b/src/assuan-client.c index 090e7fc..15f4f1c 100644 --- a/src/assuan-client.c +++ b/src/assuan-client.c @@ -42,7 +42,11 @@ _assuan_read_from_server (assuan_context_t ctx, int *okay, int *off) *off = 0; do { - rc = _assuan_read_line (ctx); + do + { + rc = _assuan_read_line (ctx); + } + while (_assuan_error_is_eagain (rc)); if (rc) return rc; line = ctx->inbound.line; -- cgit v1.2.3