X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus-manager.c;h=705a4dc974e857eed44d60f32627fd0eb820c65f;hp=d4c9e8f0e2cfa91863f98cf1b1d6297fd9efae49;hb=5bd0707340570f48675a53f5dec8dd34b162e415;hpb=5b6319dceedd81f3f1ce7eb70ea5defaef43bcec diff --git a/src/dbus-manager.c b/src/dbus-manager.c index d4c9e8f0e..705a4dc97 100644 --- a/src/dbus-manager.c +++ b/src/dbus-manager.c @@ -103,12 +103,17 @@ " " \ " \n" \ " \n" \ - " \n" \ + " \n" \ " \n" \ " \n" \ " \n" \ " \n" \ " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ " \n" #define INTROSPECTION_BEGIN \ @@ -185,18 +190,23 @@ static int bus_manager_append_n_jobs(Manager *m, DBusMessageIter *i, const char return 0; } -static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, DBusMessage *message, void *data) { +static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, DBusMessage *message, void *data) { Manager *m = data; const BusProperty properties[] = { - { "org.freedesktop.systemd1.Manager", "Version", bus_property_append_string, "s", PACKAGE_STRING }, - { "org.freedesktop.systemd1.Manager", "RunningAs", bus_manager_append_running_as, "s", &m->running_as }, - { "org.freedesktop.systemd1.Manager", "BootTimestamp", bus_property_append_uint64, "t", &m->startup_timestamp.realtime }, - { "org.freedesktop.systemd1.Manager", "LogLevel", bus_manager_append_log_level, "s", NULL }, - { "org.freedesktop.systemd1.Manager", "LogTarget", bus_manager_append_log_target, "s", NULL }, - { "org.freedesktop.systemd1.Manager", "NNames", bus_manager_append_n_names, "u", NULL }, - { "org.freedesktop.systemd1.Manager", "NJobs", bus_manager_append_n_jobs, "u", NULL }, - { "org.freedesktop.systemd1.Manager", "Environment", bus_property_append_strv, "as", m->environment }, + { "org.freedesktop.systemd1.Manager", "Version", bus_property_append_string, "s", PACKAGE_STRING }, + { "org.freedesktop.systemd1.Manager", "RunningAs", bus_manager_append_running_as, "s", &m->running_as }, + { "org.freedesktop.systemd1.Manager", "StartupTimestamp", bus_property_append_uint64, "t", &m->startup_timestamp.realtime }, + { "org.freedesktop.systemd1.Manager", "LogLevel", bus_manager_append_log_level, "s", NULL }, + { "org.freedesktop.systemd1.Manager", "LogTarget", bus_manager_append_log_target, "s", NULL }, + { "org.freedesktop.systemd1.Manager", "NNames", bus_manager_append_n_names, "u", NULL }, + { "org.freedesktop.systemd1.Manager", "NJobs", bus_manager_append_n_jobs, "u", NULL }, + { "org.freedesktop.systemd1.Manager", "Environment", bus_property_append_strv, "as", m->environment }, + { "org.freedesktop.systemd1.Manager", "ConfirmSpawn", bus_property_append_bool, "b", &m->confirm_spawn }, + { "org.freedesktop.systemd1.Manager", "UnitPath", bus_property_append_strv, "as", m->lookup_paths.unit_path }, + { "org.freedesktop.systemd1.Manager", "SysVInitPath", bus_property_append_strv, "as", m->lookup_paths.sysvinit_path }, + { "org.freedesktop.systemd1.Manager", "SysVRcndPath", bus_property_append_strv, "as", m->lookup_paths.sysvrcnd_path }, + { "org.freedesktop.systemd1.Manager", "NotifySocket", bus_property_append_string, "s", m->notify_socket }, { NULL, NULL, NULL, NULL, NULL } }; @@ -226,10 +236,10 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection &error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) - return bus_send_error_reply(m, message, &error, -EINVAL); + return bus_send_error_reply(m, connection, message, &error, -EINVAL); if (!(u = manager_get_unit(m, name))) - return bus_send_error_reply(m, message, NULL, -ENOENT); + return bus_send_error_reply(m, connection, message, NULL, -ENOENT); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -252,10 +262,10 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection &error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) - return bus_send_error_reply(m, message, &error, -EINVAL); + return bus_send_error_reply(m, connection, message, &error, -EINVAL); if ((r = manager_load_unit(m, name, NULL, &u)) < 0) - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -286,10 +296,10 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection &error, DBUS_TYPE_UINT32, &id, DBUS_TYPE_INVALID)) - return bus_send_error_reply(m, message, &error, -EINVAL); + return bus_send_error_reply(m, connection, message, &error, -EINVAL); if (!(j = manager_get_job(m, id))) - return bus_send_error_reply(m, message, NULL, -ENOENT); + return bus_send_error_reply(m, connection, message, NULL, -ENOENT); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -449,7 +459,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection r = set_put(m->subscribed, client); if (r < 0) - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -458,7 +468,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection char *client; if (!(client = set_remove(m->subscribed, (char*) dbus_message_get_sender(message)))) - return bus_send_error_reply(m, message, NULL, -ENOENT); + return bus_send_error_reply(m, connection, message, NULL, -ENOENT); free(client); @@ -504,13 +514,13 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection DBUS_TYPE_STRING, &name, DBUS_TYPE_BOOLEAN, &cleanup, DBUS_TYPE_INVALID)) - return bus_send_error_reply(m, message, &error, -EINVAL); + return bus_send_error_reply(m, connection, message, &error, -EINVAL); if (name && name[0] == 0) name = NULL; if ((r = snapshot_create(m, name, cleanup, &s)) < 0) - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -608,8 +618,8 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection } else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Manager", "Exit")) { - if (m->running_as == MANAGER_INIT) - return bus_send_error_reply(m, message, NULL, -ENOTSUP); + if (m->running_as == MANAGER_SYSTEM) + return bus_send_error_reply(m, connection, message, NULL, -ENOTSUP); if (!(reply = dbus_message_new_method_return(message))) goto oom; @@ -623,7 +633,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection if (r == -ENOMEM) goto oom; - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); } e = strv_env_merge(2, m->environment, l); @@ -647,7 +657,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection if (r == -ENOMEM) goto oom; - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); } e = strv_env_delete(m->environment, 1, l); @@ -663,7 +673,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection m->environment = e; } else - return bus_default_message_handler(m, message, NULL, properties); + return bus_default_message_handler(m, connection, message, NULL, properties); if (job_type != _JOB_TYPE_INVALID) { @@ -678,19 +688,19 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection DBUS_TYPE_STRING, &name, DBUS_TYPE_STRING, &smode, DBUS_TYPE_INVALID)) - return bus_send_error_reply(m, message, &error, -EINVAL); + return bus_send_error_reply(m, connection, message, &error, -EINVAL); if ((mode = job_mode_from_string(smode)) == _JOB_MODE_INVALID) - return bus_send_error_reply(m, message, NULL, -EINVAL); + return bus_send_error_reply(m, connection, message, NULL, -EINVAL); if ((r = manager_load_unit(m, name, NULL, &u)) < 0) - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); if (job_type == JOB_START && u->meta.only_by_dependency) - return bus_send_error_reply(m, message, NULL, -EPERM); + return bus_send_error_reply(m, connection, message, NULL, -EPERM); if ((r = manager_add_job(m, job_type, u, mode, true, &j)) < 0) - return bus_send_error_reply(m, message, NULL, r); + return bus_send_error_reply(m, connection, message, NULL, r); if (!(reply = dbus_message_new_method_return(message))) goto oom;