Advertisement
Guest User

Untitled

a guest
Jun 8th, 2011
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.82 KB | None | 0 0
  1. --- slimlock.cpp.original   2011-06-09 00:43:20.953693574 -0300
  2. +++ slimlock.cpp    2011-06-09 01:08:44.434283711 -0300
  3. @@ -21,6 +21,7 @@
  4.  #include <X11/extensions/dpms.h>
  5.  #include <security/pam_appl.h>
  6.  #include <err.h>
  7. +#include <signal.h>
  8.  
  9.  #include "cfg.h"
  10.  #include "util.h"
  11. @@ -47,6 +48,10 @@
  12.  pam_handle_t *pam_handle;
  13.  struct pam_conv conv = {ConvCallback, NULL};
  14.  
  15. +CARD16 dpms_standby, dpms_suspend, dpms_off, dpms_level;
  16. +BOOL dpms_state, using_dpms;
  17. +unsigned int cfg_dpms_standby, cfg_dpms_off;
  18. +
  19.  static void
  20.  die(const char *errstr, ...) {
  21.     va_list ap;
  22. @@ -57,12 +62,34 @@
  23.     exit(EXIT_FAILURE);
  24.  }
  25.  
  26. +void
  27. +terminate(int param)
  28. +{
  29. +    // Get DPMS stuff back to normal
  30. +    if (using_dpms) {
  31. +        DPMSSetTimeouts(dpy, dpms_standby, dpms_suspend, dpms_off);
  32. +        // turn off DPMS if it was off when we entered
  33. +        if (!dpms_state)
  34. +            DPMSDisable(dpy);
  35. +    }
  36. +
  37. +    loginPanel->ClosePanel();
  38. +    delete loginPanel;
  39. +
  40. +    exit(EXIT_FAILURE);
  41. +}
  42. +
  43.  int main(int argc, char **argv) {
  44.      if((argc == 2) && !strcmp("-v", argv[1]))
  45.          die("slimlock-"VERSION", © 2010 Joel Burget\n");
  46.      else if(argc != 1)
  47.          die("usage: slimlock [-v]\n");
  48.          
  49. +    void (*prev_fn)(int);
  50. +
  51. +    prev_fn = signal(SIGTERM, terminate);
  52. +    if (prev_fn == SIG_IGN) signal(SIGTERM, SIG_IGN);
  53. +
  54.      // create a lock file to solve mutliple instances problem
  55.      int pid_file = open("/var/tmp/slimlock.pid", O_CREAT | O_RDWR, 0666);
  56.      int rc = flock(pid_file, LOCK_EX | LOCK_NB);
  57. @@ -71,9 +98,6 @@
  58.              exit(EXIT_FAILURE);
  59.      }
  60.  
  61. -    CARD16 dpms_standby, dpms_suspend, dpms_off, dpms_level;
  62. -    BOOL dpms_state, using_dpms;
  63. -    unsigned int cfg_dpms_standby, cfg_dpms_off;
  64.  
  65.      unsigned int cfg_passwd_timeout;
  66.      // Read user's current theme
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement