sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

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;