summaryrefslogtreecommitdiffstats
path: root/ipmid.cpp
diff options
context:
space:
mode:
authorSergey Solomin <sergey.solomin@us.ibm.com>2016-08-23 09:07:28 -0500
committerSergey Solomin <sergey.solomin@us.ibm.com>2016-08-25 13:37:57 -0500
commiteb9b814403895d6435e04f02a9ff6c2b1b02cf54 (patch)
tree4a1713845844f874799a1b188db209adeaa3e085 /ipmid.cpp
parentbc40c178bb0b345ed1edf553b94369330003af34 (diff)
downloadphosphor-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.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/ipmid.cpp b/ipmid.cpp
index 7848afe..31608e9 100644
--- a/ipmid.cpp
+++ b/ipmid.cpp
@@ -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,
OpenPOWER on IntegriCloud