diff options
author | Sergey Solomin <sergey.solomin@us.ibm.com> | 2016-08-23 09:07:28 -0500 |
---|---|---|
committer | Sergey Solomin <sergey.solomin@us.ibm.com> | 2016-08-25 13:37:57 -0500 |
commit | eb9b814403895d6435e04f02a9ff6c2b1b02cf54 (patch) | |
tree | 4a1713845844f874799a1b188db209adeaa3e085 /ipmid.cpp | |
parent | bc40c178bb0b345ed1edf553b94369330003af34 (diff) | |
download | phosphor-host-ipmid-eb9b814403895d6435e04f02a9ff6c2b1b02cf54.tar.gz phosphor-host-ipmid-eb9b814403895d6435e04f02a9ff6c2b1b02cf54.zip |
Hard-coded service name replaced with call to ObjectMapper
In the openbmc code, the dbus service name is hardcoded.
The ObjectMapper provides a way to find out the service name by
issuing a GetObject method call to the ObjectMapper.
That functionality is implemented in mapper.c
The output of the call to the mapper is a service name.
Resolves openbmc/openbmc#319.
Change-Id: I724a31ede6bdf3ae4b361e730857b1f2696a8966
Signed-off-by: Sergey Solomin <sergey.solomin@us.ibm.com>
Diffstat (limited to 'ipmid.cpp')
-rw-r--r-- | ipmid.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -35,7 +35,6 @@ void print_usage(void) { } // Host settings in DBUS -constexpr char settings_host_bus[] = "org.openbmc.settings.Host"; constexpr char settings_host_object[] = "/org/openbmc/settings/host0"; constexpr char settings_host_intf[] = "org.freedesktop.DBus.Properties"; @@ -271,16 +270,22 @@ void cache_restricted_mode() sd_bus_message *reply = NULL; sd_bus_error error = SD_BUS_ERROR_NULL; int rc = 0; + char *busname = NULL; + rc = mapper_get_service(bus, settings_host_object, &busname); + if (rc < 0) { + fprintf(stderr, "Failed to get HOST busname: %s\n", strerror(-rc)); + goto cleanup; + } rc = sd_bus_call_method(bus, - settings_host_bus, + busname, settings_host_object, settings_host_intf, "Get", &error, &reply, "ss", - settings_host_bus, + "org.openbmc.settings.Host", "restricted_mode"); if(rc < 0) { @@ -303,6 +308,7 @@ void cache_restricted_mode() cleanup: sd_bus_error_free(&error); reply = sd_bus_message_unref(reply); + free(busname); } static int handle_restricted_mode_change(sd_bus_message *m, void *user_data, |