mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
logind: move lid switch handling from logind-main to logind-core
../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore' collect2: error: ld returned 1 exit status make[2]: *** [test-login-tables]
This commit is contained in:
parent
4ef0809c22
commit
b5d3e16881
@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown(
|
||||
q, NULL);
|
||||
}
|
||||
|
||||
static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) {
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(e);
|
||||
assert(m);
|
||||
|
||||
m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int manager_set_lid_switch_ignore(Manager *m, usec_t until) {
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
if (until <= now(CLOCK_MONOTONIC))
|
||||
return 0;
|
||||
|
||||
/* We want to ignore the lid switch for a while after each
|
||||
* suspend, and after boot-up. Hence let's install a timer for
|
||||
* this. As long as the event source exists we ignore the lid
|
||||
* switch. */
|
||||
|
||||
if (m->lid_switch_ignore_event_source) {
|
||||
usec_t u;
|
||||
|
||||
r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (until <= u)
|
||||
return 0;
|
||||
|
||||
r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until);
|
||||
} else
|
||||
r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static int execute_shutdown_or_sleep(
|
||||
Manager *m,
|
||||
InhibitWhat w,
|
||||
|
@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) {
|
||||
Manager *m = userdata;
|
||||
|
||||
assert(e);
|
||||
assert(m);
|
||||
|
||||
m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int manager_set_lid_switch_ignore(Manager *m, usec_t until) {
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
if (until <= now(CLOCK_MONOTONIC))
|
||||
return 0;
|
||||
|
||||
/* We want to ignore the lid switch for a while after each
|
||||
* suspend, and after boot-up. Hence let's install a timer for
|
||||
* this. As long as the event source exists we ignore the lid
|
||||
* switch. */
|
||||
|
||||
if (m->lid_switch_ignore_event_source) {
|
||||
usec_t u;
|
||||
|
||||
r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (until <= u)
|
||||
return 0;
|
||||
|
||||
r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until);
|
||||
} else
|
||||
r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
int manager_startup(Manager *m) {
|
||||
int r;
|
||||
Seat *seat;
|
||||
|
Loading…
x
Reference in New Issue
Block a user