aboutsummaryrefslogtreecommitdiff
path: root/bin/zzz.c
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
committerMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
commite2a0cf2a79b43f9f86b74270f3d96fe300687804 (patch)
treea87edf55f81e78f4d0968d6f006562090260e068 /bin/zzz.c
parentec83443853116b07f18fbef8c6de31cf157939a0 (diff)
downloaddotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.gz
dotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.xz
Cleanup unused files and code.
Diffstat (limited to 'bin/zzz.c')
-rw-r--r--bin/zzz.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/bin/zzz.c b/bin/zzz.c
deleted file mode 100644
index ad2ef6c..0000000
--- a/bin/zzz.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/types.h>
-
-#define POWER_STATE_F "/sys/power/state"
-
-void
-die(const char *msg)
-{
- puts(msg);
- exit(1);
-}
-
-void
-err(const char *msg)
-{
- perror(msg);
- exit(1);
-}
-
-void
-suspend()
-{
- int fh = open(POWER_STATE_F, O_WRONLY);
- int n;
- const char *cmd = "mem";
-
- if (fh == -1)
- err("Opening "POWER_STATE_F);
-
- n = write(fh, cmd, 3);
- if (n == -1)
- err("Writing to "POWER_STATE_F);
-
- exit(0);
-}
-
-int
-main(int argc, char **argv)
-{
- uid_t uid = getuid();
- gid_t gid = getgid();
- uid_t euid = geteuid();
- char **a = argv+1;
- char *lockProg = "slock";
- pid_t pid;
- int ret;
-
- if (euid != 0)
- die("Program must be run as root/setuid");
-
- for (;*a;a++) {
- if (strcmp("-l", *a) == 0) {
- a++;
- if (*a)
- lockProg = *a;
- else
- die("-l must have an argument");
- } else {
- printf("Unknown argument: '%s'\n", *a);
- exit(1);
- }
- }
-
-
- pid = fork();
- switch (pid) {
- case -1:
- err("fork");
- case 0:
- ret = setuid(uid);
- if (ret == -1)
- err("setuid");
- ret = setgid(gid);
- if (ret == -1)
- err("setgid");
-
- execlp(lockProg, lockProg);
- err("execlp");
- default:
- suspend();
- }
-
-}