diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-07-23 20:24:27 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-07-23 20:24:27 +0000 |
commit | 16e017d5a65b68f226835cd200ae3f252b08ed15 (patch) | |
tree | c117b427c0654d4cc132691f8b04b3493d5393db /client.c | |
parent | ba84ddcf8e64beac0838bbc4097ef1417e85916f (diff) | |
download | rtmux-16e017d5a65b68f226835cd200ae3f252b08ed15.tar.gz rtmux-16e017d5a65b68f226835cd200ae3f252b08ed15.tar.bz2 rtmux-16e017d5a65b68f226835cd200ae3f252b08ed15.zip |
Tidy client message return slightly: convert flags into an enum, and merge
error string into struct client_ctx as well.
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 33 |
1 files changed, 15 insertions, 18 deletions
@@ -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 |