| Index: main.cc
|
| diff --git a/main.cc b/main.cc
|
| index ec1c5f860544368b3cef0fdf7bf9bce7fd28edca..9df916394874b4f902492995dd3b7c3f31749b79 100644
|
| --- a/main.cc
|
| +++ b/main.cc
|
| @@ -61,7 +61,7 @@ static gboolean do_signal(void *arg) {
|
| int sig = reinterpret_cast<int>(arg);
|
| LOG(INFO) << "Signal: " << sig;
|
|
|
| - if (sig == SIGTERM) {
|
| + if (sig == SIGTERM || sig == SIGINT) {
|
| exit_main_loop();
|
| }
|
|
|
| @@ -76,7 +76,7 @@ static void *handle_signals(void *arg) {
|
| sigaddset(&sigs, SIGTERM);
|
| sigaddset(&sigs, SIGINT);
|
| LOG(INFO) << "waiting for signals";
|
| - while (info.si_signo != SIGTERM) {
|
| + while (info.si_signo != SIGTERM && info.si_signo != SIGINT) {
|
| sigwaitinfo(&sigs, &info);
|
| g_idle_add(do_signal, reinterpret_cast<void*>(info.si_signo));
|
| }
|
| @@ -199,7 +199,6 @@ int main(int argc, char* argv[]) {
|
| conn.request_name(CromoServer::kServiceName);
|
|
|
| server = new CromoServer(conn);
|
| - MessageHandler m(server);
|
| char buf[256];
|
| snprintf(buf, sizeof(buf), "type='signal',interface='%s',member='%s'",
|
| kDBusInterface, kDBusNameOwnerChanged);
|
| @@ -209,7 +208,7 @@ int main(int argc, char* argv[]) {
|
| power_manager::kSuspendDelay);
|
| conn.add_match(buf);
|
| DBus::MessageSlot mslot;
|
| - mslot = &m;
|
| + mslot = new MessageHandler(server);
|
| if (!conn.add_filter(mslot)) {
|
| LOG(ERROR) << "Can't add filter";
|
| } else {
|
|
|