slock-failure-command-1.4.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) 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;