}
typedef struct SessionContext {
- const uid_t uid;
const char *service;
const char *type;
const char *class;
static int create_session_message(
sd_bus *bus,
pam_handle_t *handle,
+ UserRecord *ur,
const SessionContext *context,
bool avoid_pidfd,
sd_bus_message **ret) {
assert(bus);
assert(handle);
+ assert(ur);
assert(context);
assert(ret);
r = sd_bus_message_append(m,
pidfd >= 0 ? "uhsssssussbss" : "uusssssussbss",
- (uint32_t) context->uid,
+ (uint32_t) ur->uid,
pidfd >= 0 ? pidfd : 0,
context->service,
context->type,
strna(memory_max), strna(tasks_max), strna(cpu_weight), strna(io_weight), strna(runtime_max_sec));
const SessionContext context = {
- .uid = ur->uid,
.service = service,
.type = type,
.class = class,
r = create_session_message(bus,
handle,
+ ur,
&context,
/* avoid_pidfd = */ false,
&m);
m = sd_bus_message_unref(m);
r = create_session_message(bus,
handle,
+ ur,
&context,
/* avoid_pidfd = */ true,
&m);