DSME_HANDLER(DSM_MSGTYPE_STATE_REQ_DENIED_IND, server, msg) { const char* denied_request = shutdown_action_name(msg->state); dsme_log(LOG_CRIT, "proxying %s request denial due to %s to D-Bus", denied_request, (const char*)DSMEMSG_EXTRA(msg)); DsmeDbusMessage* sig = dsme_dbus_signal_new(sig_path, sig_interface, dsme_state_req_denied_ind); dsme_dbus_message_append_string(sig, denied_request); dsme_dbus_message_append_string(sig, DSMEMSG_EXTRA(msg)); dsme_dbus_signal_emit(sig); }
static bool disk_space_running_out(const DSM_MSGTYPE_DISK_SPACE* msg) { const char *mount_path = DSMEMSG_EXTRA(msg); /* TODO: we should actually check the mount entries to figure out on which mount(s) temp_dirs are mounted on. We now assume that all temp_dirs are mounted on the root partition. */ return (strcmp(mount_path, "/") == 0); }
DSME_HANDLER(DSM_MSGTYPE_TELINIT, conn, msg) { const char* runlevel = DSMEMSG_EXTRA(msg); char* sender = endpoint_name(conn); dsme_log(LOG_NOTICE, PFIX"got telinit '%s' from %s", runlevel ? runlevel : "(null)", sender ? sender : "(unknown)"); free(sender); if (runlevel) { telinit_handler(state_value(runlevel))(conn); } }
DSME_HANDLER(DSM_MSGTYPE_DSME_VERSION, server, msg) { if (!dsme_version) { dsme_version = g_strdup(DSMEMSG_EXTRA(msg)); } }