From 54c6848d75bb4ab33cfeb0dd60e258ea799ffe55 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Mon, 20 Jul 2009 16:07:23 +0000 Subject: [PATCH] Sync OpenBSD patchset 148: Display the number of failed password attempts (if any) when the server is locked. From Tom Doherty. --- server-fn.c | 6 ++++-- server.c | 14 +++++++++++++- tmux.c | 3 ++- tmux.h | 3 ++- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/server-fn.c b/server-fn.c index f1986cae..d11fda16 100644 --- a/server-fn.c +++ b/server-fn.c @@ -1,4 +1,4 @@ -/* $Id: server-fn.c,v 1.75 2009-07-18 11:07:14 nicm Exp $ */ +/* $Id: server-fn.c,v 1.76 2009-07-20 16:07:23 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -213,9 +213,11 @@ server_unlock(const char *s) } server_locked = 0; + password_failures = 0; return (0); wrong: + password_failures++; for (i = 0; i < ARRAY_LENGTH(&clients); i++) { c = ARRAY_ITEM(&clients, i); if (c == NULL || c->prompt_buffer == NULL) @@ -223,7 +225,7 @@ wrong: *c->prompt_buffer = '\0'; c->prompt_index = 0; - server_status_client(c); + server_redraw_client(c); } return (-1); diff --git a/server.c b/server.c index 7d9a1568..2c2d0ab3 100644 --- a/server.c +++ b/server.c @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.160 2009-07-20 15:42:05 tcunha Exp $ */ +/* $Id: server.c,v 1.161 2009-07-20 16:07:23 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -584,6 +584,7 @@ server_redraw_locked(struct client *c) { struct screen_write_ctx ctx; struct screen screen; + struct grid_cell gc; u_int colour, xx, yy, i; int style; @@ -594,10 +595,21 @@ server_redraw_locked(struct client *c) colour = options_get_number(&global_w_options, "clock-mode-colour"); style = options_get_number(&global_w_options, "clock-mode-style"); + memcpy(&gc, &grid_default_cell, sizeof gc); + gc.fg = colour; + gc.attr |= GRID_ATTR_BRIGHT; + screen_init(&screen, xx, yy, 0); screen_write_start(&ctx, NULL, &screen); clock_draw(&ctx, colour, style); + + if (password_failures != 0) { + screen_write_cursormove(&ctx, 0, 0); + screen_write_puts( + &ctx, &gc, "%u failed attempts", password_failures); + } + screen_write_stop(&ctx); for (i = 0; i < screen_size_y(&screen); i++) diff --git a/tmux.c b/tmux.c index 387f1775..1fa6996c 100644 --- a/tmux.c +++ b/tmux.c @@ -1,4 +1,4 @@ -/* $Id: tmux.c,v 1.146 2009-07-20 16:01:07 tcunha Exp $ */ +/* $Id: tmux.c,v 1.147 2009-07-20 16:07:23 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -51,6 +51,7 @@ struct options global_s_options; /* session options */ struct options global_w_options; /* window options */ int server_locked; +u_int password_failures; char *server_password; time_t server_activity; diff --git a/tmux.h b/tmux.h index 6c54168b..aeb7fdaf 100644 --- a/tmux.h +++ b/tmux.h @@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.373 2009-07-20 15:42:05 tcunha Exp $ */ +/* $Id: tmux.h,v 1.374 2009-07-20 16:07:23 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -997,6 +997,7 @@ extern struct options global_s_options; extern struct options global_w_options; extern char *cfg_file; extern int server_locked; +extern u_int password_failures; extern char *server_password; extern time_t server_activity; extern int debug_level;