diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-09-28 12:18:54 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-09-28 13:53:01 +0200 |
commit | c9773491207d36d6f5e651adcb7a64c7a015bba3 (patch) | |
tree | ed2d195ac03609bdb1b3132d1ef748ad59132e8a /swaylock/main.c | |
parent | Merge pull request #2717 from ianyfan/tablet-config (diff) | |
download | sway-c9773491207d36d6f5e651adcb7a64c7a015bba3.tar.gz sway-c9773491207d36d6f5e651adcb7a64c7a015bba3.tar.zst sway-c9773491207d36d6f5e651adcb7a64c7a015bba3.zip |
Add support for building swaylock without PAM
This involves setuid'ing swaylock, which then forks and drops perms on
the parent process. The child process remains root and listens on a pipe
for requests to validate passwords against /etc/shadow.
Diffstat (limited to 'swaylock/main.c')
-rw-r--r-- | swaylock/main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/swaylock/main.c b/swaylock/main.c index c25c8eec..693cbc10 100644 --- a/swaylock/main.c +++ b/swaylock/main.c | |||
@@ -845,6 +845,9 @@ static int load_config(char *path, struct swaylock_state *state, | |||
845 | static struct swaylock_state state; | 845 | static struct swaylock_state state; |
846 | 846 | ||
847 | int main(int argc, char **argv) { | 847 | int main(int argc, char **argv) { |
848 | wlr_log_init(WLR_DEBUG, NULL); | ||
849 | initialize_pw_backend(); | ||
850 | |||
848 | enum line_mode line_mode = LM_LINE; | 851 | enum line_mode line_mode = LM_LINE; |
849 | state.args = (struct swaylock_args){ | 852 | state.args = (struct swaylock_args){ |
850 | .mode = BACKGROUND_MODE_SOLID_COLOR, | 853 | .mode = BACKGROUND_MODE_SOLID_COLOR, |
@@ -857,8 +860,6 @@ int main(int argc, char **argv) { | |||
857 | wl_list_init(&state.images); | 860 | wl_list_init(&state.images); |
858 | set_default_colors(&state.args.colors); | 861 | set_default_colors(&state.args.colors); |
859 | 862 | ||
860 | wlr_log_init(WLR_DEBUG, NULL); | ||
861 | |||
862 | char *config_path = NULL; | 863 | char *config_path = NULL; |
863 | int result = parse_options(argc, argv, NULL, NULL, &config_path); | 864 | int result = parse_options(argc, argv, NULL, NULL, &config_path); |
864 | if (result != 0) { | 865 | if (result != 0) { |