mirror of
https://github.com/tmux/tmux.git
synced 2025-01-14 20:58:53 +00:00
Display the number of failed password attempts (if any) when the server is
locked. From Tom Doherty.
This commit is contained in:
parent
b292f71c49
commit
54afcfbfb4
@ -213,9 +213,11 @@ server_unlock(const char *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
server_locked = 0;
|
server_locked = 0;
|
||||||
|
password_failures = 0;
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
wrong:
|
wrong:
|
||||||
|
password_failures++;
|
||||||
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
|
||||||
c = ARRAY_ITEM(&clients, i);
|
c = ARRAY_ITEM(&clients, i);
|
||||||
if (c == NULL || c->prompt_buffer == NULL)
|
if (c == NULL || c->prompt_buffer == NULL)
|
||||||
@ -223,7 +225,7 @@ wrong:
|
|||||||
|
|
||||||
*c->prompt_buffer = '\0';
|
*c->prompt_buffer = '\0';
|
||||||
c->prompt_index = 0;
|
c->prompt_index = 0;
|
||||||
server_status_client(c);
|
server_redraw_client(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (-1);
|
return (-1);
|
||||||
|
12
server.c
12
server.c
@ -579,6 +579,7 @@ server_redraw_locked(struct client *c)
|
|||||||
{
|
{
|
||||||
struct screen_write_ctx ctx;
|
struct screen_write_ctx ctx;
|
||||||
struct screen screen;
|
struct screen screen;
|
||||||
|
struct grid_cell gc;
|
||||||
u_int colour, xx, yy, i;
|
u_int colour, xx, yy, i;
|
||||||
int style;
|
int style;
|
||||||
|
|
||||||
@ -589,10 +590,21 @@ server_redraw_locked(struct client *c)
|
|||||||
colour = options_get_number(&global_w_options, "clock-mode-colour");
|
colour = options_get_number(&global_w_options, "clock-mode-colour");
|
||||||
style = options_get_number(&global_w_options, "clock-mode-style");
|
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_init(&screen, xx, yy, 0);
|
||||||
|
|
||||||
screen_write_start(&ctx, NULL, &screen);
|
screen_write_start(&ctx, NULL, &screen);
|
||||||
clock_draw(&ctx, colour, style);
|
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);
|
screen_write_stop(&ctx);
|
||||||
|
|
||||||
for (i = 0; i < screen_size_y(&screen); i++)
|
for (i = 0; i < screen_size_y(&screen); i++)
|
||||||
|
1
tmux.c
1
tmux.c
@ -46,6 +46,7 @@ struct options global_s_options; /* session options */
|
|||||||
struct options global_w_options; /* window options */
|
struct options global_w_options; /* window options */
|
||||||
|
|
||||||
int server_locked;
|
int server_locked;
|
||||||
|
u_int password_failures;
|
||||||
char *server_password;
|
char *server_password;
|
||||||
time_t server_activity;
|
time_t server_activity;
|
||||||
|
|
||||||
|
1
tmux.h
1
tmux.h
@ -998,6 +998,7 @@ extern struct options global_s_options;
|
|||||||
extern struct options global_w_options;
|
extern struct options global_w_options;
|
||||||
extern char *cfg_file;
|
extern char *cfg_file;
|
||||||
extern int server_locked;
|
extern int server_locked;
|
||||||
|
extern u_int password_failures;
|
||||||
extern char *server_password;
|
extern char *server_password;
|
||||||
extern time_t server_activity;
|
extern time_t server_activity;
|
||||||
extern int debug_level;
|
extern int debug_level;
|
||||||
|
Loading…
Reference in New Issue
Block a user