Example #1
0
DSME_HANDLER(DSM_MSGTYPE_STATE_CHANGE_IND, server, msg)
{
    if (state_replies) {
        // there are yet unsent replies to state queries; sent the first one
        GSList* first_node = state_replies;
        DsmeDbusMessage* first_reply = (DsmeDbusMessage*)(first_node->data);
        dsme_dbus_message_append_string(first_reply, state_name(msg->state));
        dsme_dbus_signal_emit(first_reply); // deletes the reply
        first_node->data = 0;
        state_replies = g_slist_delete_link(state_replies, first_node);
    } else {
        // this is a broadcast state change
        if (msg->state == DSME_STATE_SHUTDOWN ||
            msg->state == DSME_STATE_ACTDEAD  ||
            msg->state == DSME_STATE_REBOOT)
        {
            emit_dsme_dbus_signal(dsme_shutdown_ind);
        }

        DsmeDbusMessage* sig = dsme_dbus_signal_new(sig_path,
                                                    sig_interface,
                                                    dsme_state_change_ind);
        dsme_dbus_message_append_string(sig, state_name(msg->state));
        dsme_dbus_signal_emit(sig);
    }
}
Example #2
0
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);
}
Example #3
0
DSME_HANDLER(DSM_MSGTYPE_STATE_CHANGE_IND, server, msg)
{
  if (msg->state == DSME_STATE_SHUTDOWN ||
      msg->state == DSME_STATE_ACTDEAD  ||
      msg->state == DSME_STATE_REBOOT)
  {
    DsmeDbusMessage* sig = dsme_dbus_signal_new(sig_path,
                                                sig_interface,
                                                dsme_shutdown_ind);
    dsme_dbus_message_append_string(sig, shutdown_action_name(msg->state));

    dsme_dbus_signal_emit(sig);
  }
}
Example #4
0
static void get_version(const DsmeDbusMessage* request, DsmeDbusMessage** reply)
{
  *reply = dsme_dbus_reply_new(request);
  dsme_dbus_message_append_string(*reply,
                                  dsme_version ? dsme_version : "unknown");
}