chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: include connection name in credentials structure
[elogind.git]
/
src
/
libsystemd
/
sd-bus
/
bus-control.c
diff --git
a/src/libsystemd/sd-bus/bus-control.c
b/src/libsystemd/sd-bus/bus-control.c
index e7e9ba07b0a4f5bab1681f1036624cf9ee5415f0..55482394264c2a70a3e8071199f6bafdf29dd033 100644
(file)
--- a/
src/libsystemd/sd-bus/bus-control.c
+++ b/
src/libsystemd/sd-bus/bus-control.c
@@
-379,9
+379,10
@@
static int bus_get_owner_kdbus(
cmd = alloca0(size);
strcpy(cmd->name, name);
}
cmd = alloca0(size);
strcpy(cmd->name, name);
}
- cmd->flags = KDBUS_ATTACH_NAMES;
cmd->size = size;
cmd->size = size;
+ kdbus_translate_attach_flags(mask, (uint64_t*) &cmd->flags);
+
r = ioctl(bus->input_fd, KDBUS_CMD_CONN_INFO, cmd);
if (r < 0)
return -errno;
r = ioctl(bus->input_fd, KDBUS_CMD_CONN_INFO, cmd);
if (r < 0)
return -errno;
@@
-553,6
+554,18
@@
static int bus_get_owner_kdbus(
c->mask |= SD_BUS_CREDS_WELL_KNOWN_NAMES;
}
break;
c->mask |= SD_BUS_CREDS_WELL_KNOWN_NAMES;
}
break;
+
+ case KDBUS_ITEM_CONN_NAME:
+ if ((mask & SD_BUS_CREDS_CONNECTION_NAME)) {
+ c->conn_name = strdup(item->str);
+ if (!c->conn_name) {
+ r = -ENOMEM;
+ goto fail;
+ }
+
+ c->mask |= SD_BUS_CREDS_CONNECTION_NAME;
+ }
+ break;
}
}
}
}