summaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'client.c')
-rw-r--r--client.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/client.c b/client.c
index e93272de..214ec6a0 100644
--- a/client.c
+++ b/client.c
@@ -212,30 +212,36 @@ client_main(struct client_ctx *cctx)
}
out:
- if (sigterm) {
- printf("[terminated]\n");
- return (1);
- }
- switch (cctx->exittype) {
- case CCTX_DIED:
- printf("[lost server]\n");
- return (0);
- case CCTX_SHUTDOWN:
- printf("[server exited]\n");
- return (0);
- case CCTX_EXIT:
- if (cctx->errstr != NULL) {
- printf("[error: %s]\n", cctx->errstr);
+ /*
+ * Print exit status message, unless running as a login shell where it
+ * would either be pointless or irritating.
+ */
+ if (!login_shell) {
+ if (sigterm) {
+ printf("[terminated]\n");
+ return (1);
+ }
+ switch (cctx->exittype) {
+ case CCTX_DIED:
+ printf("[lost server]\n");
+ return (0);
+ case CCTX_SHUTDOWN:
+ printf("[server exited]\n");
+ return (0);
+ case CCTX_EXIT:
+ if (cctx->errstr != NULL) {
+ printf("[error: %s]\n", cctx->errstr);
+ return (1);
+ }
+ printf("[exited]\n");
+ return (0);
+ case CCTX_DETACH:
+ printf("[detached]\n");
+ return (0);
+ default:
+ printf("[unknown error]\n");
return (1);
}
- printf("[exited]\n");
- return (0);
- case CCTX_DETACH:
- printf("[detached]\n");
- return (0);
- default:
- printf("[unknown error]\n");
- return (1);
}
}