From 16e017d5a65b68f226835cd200ae3f252b08ed15 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 23 Jul 2009 20:24:27 +0000 Subject: Tidy client message return slightly: convert flags into an enum, and merge error string into struct client_ctx as well. --- client.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index 5ad15321..9bd731a8 100644 --- a/client.c +++ b/client.c @@ -155,7 +155,7 @@ client_main(struct client_ctx *cctx) sigcont = 0; } - switch (client_msg_dispatch(cctx, &error)) { + switch (client_msg_dispatch(cctx)) { case -1: goto out; case 0: @@ -179,8 +179,10 @@ client_main(struct client_ctx *cctx) fatal("poll failed"); } - if (buffer_poll(&pfd, cctx->srv_in, cctx->srv_out) != 0) - goto server_dead; + if (buffer_poll(&pfd, cctx->srv_in, cctx->srv_out) != 0) { + cctx->exittype = CCTX_DIED; + break; + } } out: @@ -188,28 +190,23 @@ out: printf("[terminated]\n"); return (1); } - - if (cctx->flags & CCTX_SHUTDOWN) { + switch (cctx->exittype) { + case CCTX_DIED: + printf("[lost server]\n"); + return (0); + case CCTX_SHUTDOWN: printf("[server exited]\n"); return (0); - } - - if (cctx->flags & CCTX_EXIT) { + case CCTX_EXIT: printf("[exited]\n"); return (0); - } - - if (cctx->flags & CCTX_DETACH) { + case CCTX_DETACH: printf("[detached]\n"); return (0); + default: + printf("[error: %s]\n", cctx->errstr); + return (1); } - - printf("[error: %s]\n", error); - return (1); - -server_dead: - printf("[lost server]\n"); - return (0); } void -- cgit