1303 files changed, 32187 insertions, 57138 deletions
diff --git a/util-linux/acpid.c b/util-linux/acpid.c index 38421c2..3e68b61 100644 --- a/util-linux/acpid.c +++ b/util-linux/acpid.c @@ -6,6 +6,32 @@ * * Licensed under GPLv2, see file LICENSE in this source tree. */ +//config:config ACPID +//config: bool "acpid" +//config: default y +//config: select PLATFORM_LINUX +//config: help +//config: acpid listens to ACPI events coming either in textual form from +//config: /proc/acpi/event (though it is marked deprecated it is still widely +//config: used and _is_ a standard) or in binary form from specified evdevs +//config: (just use /dev/input/event*). +//config: +//config: It parses the event to retrieve ACTION and a possible PARAMETER. +//config: It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts +//config: (if the resulting path is a directory) or directly as an executable. +//config: +//config: N.B. acpid relies on run-parts so have the latter installed. +//config: +//config:config FEATURE_ACPID_COMPAT +//config: bool "Accept and ignore redundant options" +//config: default y +//config: depends on ACPID +//config: help +//config: Accept and ignore compatibility options -g -m -s -S -v. + +//applet:IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP)) + +//kbuild:lib-$(CONFIG_ACPID) += acpid.o //usage:#define acpid_trivial_usage //usage: "[-df] [-c CONFDIR] [-l LOGFILE] [-a ACTIONFILE] [-M MAPFILE] [-e PROC_EVENT_FILE] [-p PIDFILE]" @@ -121,10 +147,8 @@ static void process_event(const char *event) char *handler = xasprintf("./%s", event); const char *args[] = { "run-parts", handler, NULL }; - // debug info - if (option_mask32 & OPT_d) { - bb_error_msg("%s", event); - } + // log the event + bb_error_msg("%s", event); // spawn handler // N.B. run-parts would require scripts to have #!/bin/sh @@ -153,7 +177,7 @@ static const char *find_action(struct input_event *ev, const char *buf) } if (buf) { - if (strncmp(buf, evt_tab[i].desc, strlen(buf)) == 0) { + if (is_prefixed_with(evt_tab[i].desc, buf)) { action = evt_tab[i].desc; break; } @@ -256,7 +280,7 @@ int acpid_main(int argc UNUSED_PARAM, char **argv) /* No -d "Debug", we log to log file. * This includes any output from children. */ - xmove_fd(xopen(opt_logfile, O_WRONLY | O_CREAT | O_TRUNC), STDOUT_FILENO); + xmove_fd(xopen(opt_logfile, O_WRONLY | O_CREAT | O_APPEND), STDOUT_FILENO); xdup2(STDOUT_FILENO, STDERR_FILENO); /* Also, acpid's messages (but not children) will go to syslog too */ openlog(applet_name, LOG_PID, LOG_DAEMON); |