Display the number of failed password attempts (if any) when the server is

locked. From Tom Doherty.
pull/1/head
Nicholas Marriott 2009-07-20 14:37:51 +00:00
parent b292f71c49
commit 54afcfbfb4
4 changed files with 17 additions and 1 deletions

View File

@ -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);

View File

@ -579,6 +579,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;
@ -589,10 +590,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++)

1
tmux.c
View File

@ -46,6 +46,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;

1
tmux.h
View File

@ -998,6 +998,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;