slock-failure-command-1.4.diff (1034B)
1 diff --git a/config.def.h b/config.def.h 2 index 9855e21..4c7b0d9 100644 3 --- a/config.def.h 4 +++ b/config.def.h 5 @@ -10,3 +10,10 @@ static const char *colorname[NUMCOLS] = { 6 7 /* treat a cleared input like a wrong password (color) */ 8 static const int failonclear = 1; 9 + 10 +/* number of failed password attempts until failcommand is executed. 11 + Set to 0 to disable */ 12 +static const int failcount = 0; 13 + 14 +/* command to be executed after [failcount] failed password attempts */ 15 +static const char *failcommand = "shutdown"; 16 diff --git a/slock.c b/slock.c 17 index d2f0886..53c567f 100644 18 --- a/slock.c 19 +++ b/slock.c 20 @@ -23,6 +23,7 @@ 21 #include "util.h" 22 23 char *argv0; 24 +int failtrack = 0; 25 26 enum { 27 INIT, 28 @@ -167,6 +168,11 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, 29 if (running) { 30 XBell(dpy, 100); 31 failure = 1; 32 + failtrack++; 33 + 34 + if (failtrack >= failcount && failcount != 0){ 35 + system(failcommand); 36 + } 37 } 38 explicit_bzero(&passwd, sizeof(passwd)); 39 len = 0;