summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a69f425)
RequestName return codes should be consistent with Dbus Specification.
VALUE - DESCRIPTION
1-The caller is now the primary owner of the name, replacing any previous owner,
2-The name already had an owner (QUEUE flag was not specified),
3-The name already has an owner (QUEUE flag was specified),
4-Application trying to request ownership of a name is already the owner of it.
cmd_name->id = id;
r = ioctl(sd_bus_get_fd(bus), KDBUS_CMD_NAME_ACQUIRE, cmd_name);
cmd_name->id = id;
r = ioctl(sd_bus_get_fd(bus), KDBUS_CMD_NAME_ACQUIRE, cmd_name);
+ if (r < 0) {
+ if (errno == EEXIST)
+ return sd_bus_reply_method_return(m, "u", BUS_NAME_EXISTS);
+ else if (errno == EALREADY)
+ return sd_bus_reply_method_return(m, "u", BUS_NAME_ALREADY_OWNER);
+ else
+ return sd_bus_reply_method_return(m, "u", -errno);
+ }
+
+ if (cmd_name->flags & KDBUS_NAME_IN_QUEUE)
+ return sd_bus_reply_method_return(m, "u", BUS_NAME_IN_QUEUE);
- return sd_bus_reply_method_return(m, "u", 0);
+ return sd_bus_reply_method_return(m, "u", BUS_NAME_PRIMARY_OWNER);
}
static int driver_start_service_by_name(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) {
}
static int driver_start_service_by_name(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) {