X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-button.c;h=ea45c28eefe8fad705fb50ce24b9eef6b1301112;hb=d1148ed10a474ccc949113a8ec06e7e29c4c7cb0;hp=dbf3d3c446dd260f3ab81d8ed22a2287affe0d7d;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/login/logind-button.c b/src/login/logind-button.c index dbf3d3c44..ea45c28ee 100644 --- a/src/login/logind-button.c +++ b/src/login/logind-button.c @@ -33,6 +33,7 @@ #include "logind-button.h" #include "special.h" #include "dbus-common.h" +#include "sd-messages.h" Button* button_new(Manager *m, const char *name) { Button *b; @@ -70,7 +71,11 @@ void button_free(Button *b) { if (b->fd >= 0) { hashmap_remove(b->manager->button_fds, INT_TO_PTR(b->fd + 1)); assert_se(epoll_ctl(b->manager->epoll_fd, EPOLL_CTL_DEL, b->fd, NULL) == 0); - close_nointr_nofail(b->fd); + + /* If the device has been unplugged close() returns + * ENODEV, let's ignore this, hence we don't use + * close_nointr_nofail() */ + close(b->fd); } free(b->name); @@ -102,7 +107,7 @@ int button_open(Button *b) { assert(b); if (b->fd >= 0) { - close_nointr_nofail(b->fd); + close(b->fd); b->fd = -1; } @@ -145,7 +150,7 @@ int button_open(Button *b) { return 0; fail: - close_nointr_nofail(b->fd); + close(b->fd); b->fd = -1; return r; } @@ -188,7 +193,10 @@ int button_process(Button *b) { case KEY_POWER: case KEY_POWER2: - log_info("Power key pressed."); + log_struct(LOG_INFO, + "MESSAGE=Power key pressed.", + MESSAGE_ID(SD_MESSAGE_POWER_KEY), + NULL); return button_handle(b, INHIBIT_HANDLE_POWER_KEY, b->manager->handle_power_key, b->manager->power_key_ignore_inhibited, true); /* The kernel is a bit confused here: @@ -198,11 +206,17 @@ int button_process(Button *b) { */ case KEY_SLEEP: - log_info("Suspend key pressed."); + log_struct(LOG_INFO, + "MESSAGE=Suspend key pressed.", + MESSAGE_ID(SD_MESSAGE_SUSPEND_KEY), + NULL); return button_handle(b, INHIBIT_HANDLE_SUSPEND_KEY, b->manager->handle_suspend_key, b->manager->suspend_key_ignore_inhibited, true); case KEY_SUSPEND: - log_info("Hibernate key pressed."); + log_struct(LOG_INFO, + "MESSAGE=Hibernate key pressed.", + MESSAGE_ID(SD_MESSAGE_HIBERNATE_KEY), + NULL); return button_handle(b, INHIBIT_HANDLE_HIBERNATE_KEY, b->manager->handle_hibernate_key, b->manager->hibernate_key_ignore_inhibited, true); } @@ -211,7 +225,10 @@ int button_process(Button *b) { switch (ev.code) { case SW_LID: - log_info("Lid closed."); + log_struct(LOG_INFO, + "MESSAGE=Lid closed.", + MESSAGE_ID(SD_MESSAGE_LID_CLOSED), + NULL); b->lid_close_queued = true; return button_handle(b, INHIBIT_HANDLE_LID_SWITCH, b->manager->handle_lid_switch, b->manager->lid_switch_ignore_inhibited, true); @@ -222,7 +239,10 @@ int button_process(Button *b) { switch (ev.code) { case SW_LID: - log_info("Lid opened."); + log_struct(LOG_INFO, + "MESSAGE=Lid opened.", + MESSAGE_ID(SD_MESSAGE_LID_OPENED), + NULL); b->lid_close_queued = false; break; }