chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prep v220: Apply "Fixes to user and session saving"
[elogind.git]
/
src
/
login
/
logind-session-dbus.c
diff --git
a/src/login/logind-session-dbus.c
b/src/login/logind-session-dbus.c
index 337bbbbe8d141583c0105637dc6d1e16e87ca15c..b5ecc322f56e7fba9d6642a3b3e4e60daa6dc5a7 100644
(file)
--- a/
src/login/logind-session-dbus.c
+++ b/
src/login/logind-session-dbus.c
@@
-163,7
+163,7
@@
static int property_get_idle_since_hint(
sd_bus_error *error) {
Session *s = userdata;
sd_bus_error *error) {
Session *s = userdata;
- dual_timestamp t;
+ dual_timestamp t
= DUAL_TIMESTAMP_NULL
;
uint64_t u;
int r;
uint64_t u;
int r;
@@
-180,11
+180,10
@@
static int property_get_idle_since_hint(
return sd_bus_message_append(reply, "t", u);
}
return sd_bus_message_append(reply, "t", u);
}
-int bus_session_method_terminate(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+int bus_session_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
int r;
Session *s = userdata;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-208,11
+207,10
@@
int bus_session_method_terminate(sd_bus *bus, sd_bus_message *message, void *use
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-int bus_session_method_activate(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
int r;
Session *s = userdata;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-223,11
+221,10
@@
int bus_session_method_activate(sd_bus *bus, sd_bus_message *message, void *user
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-int bus_session_method_lock(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+int bus_session_method_lock(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
int r;
Session *s = userdata;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-251,13
+248,12
@@
int bus_session_method_lock(sd_bus *bus, sd_bus_message *message, void *userdata
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-static int method_set_idle_hint(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_set_idle_hint(sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
Session *s = userdata;
uid_t uid;
int r, b;
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
Session *s = userdata;
uid_t uid;
int r, b;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-281,14
+277,13
@@
static int method_set_idle_hint(sd_bus *bus, sd_bus_message *message, void *user
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-int bus_session_method_kill(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+int bus_session_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
const char *swho;
int32_t signo;
KillWho who;
int r;
Session *s = userdata;
const char *swho;
int32_t signo;
KillWho who;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-327,13
+322,12
@@
int bus_session_method_kill(sd_bus *bus, sd_bus_message *message, void *userdata
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-static int method_take_control(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_take_control(sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
Session *s = userdata;
int r, force;
uid_t uid;
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
Session *s = userdata;
int r, force;
uid_t uid;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-359,10
+353,9
@@
static int method_take_control(sd_bus *bus, sd_bus_message *message, void *userd
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-static int method_release_control(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_release_control(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
Session *s = userdata;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-374,14
+367,13
@@
static int method_release_control(sd_bus *bus, sd_bus_message *message, void *us
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-static int method_take_device(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_take_device(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-413,14
+405,13
@@
static int method_take_device(sd_bus *bus, sd_bus_message *message, void *userda
return r;
}
return r;
}
-static int method_release_device(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_release_device(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-440,14
+431,13
@@
static int method_release_device(sd_bus *bus, sd_bus_message *message, void *use
return sd_bus_reply_method_return(message, NULL);
}
return sd_bus_reply_method_return(message, NULL);
}
-static int method_pause_device_complete(sd_bus
*bus, sd_bus
_message *message, void *userdata, sd_bus_error *error) {
+static int method_pause_device_complete(sd_bus_message *message, void *userdata, sd_bus_error *error) {
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
Session *s = userdata;
uint32_t major, minor;
SessionDevice *sd;
dev_t dev;
int r;
- assert(bus);
assert(message);
assert(s);
assert(message);
assert(s);
@@
-711,6
+701,9
@@
int session_send_create_reply(Session *s, sd_bus_error *error) {
if (!s->create_message)
return 0;
if (!s->create_message)
return 0;
+ if (!sd_bus_error_is_set(error) && (s->scope_job || s->user->service_job))
+ return 0;
+
c = s->create_message;
s->create_message = NULL;
c = s->create_message;
s->create_message = NULL;
@@
-721,8
+714,8
@@
int session_send_create_reply(Session *s, sd_bus_error *error) {
if (fifo_fd < 0)
return fifo_fd;
if (fifo_fd < 0)
return fifo_fd;
- /* Update the session and user state file
s before we notify
- *
the client
about the result. */
+ /* Update the session and user state file
before we notify the client
+ * about the result. */
session_save(s);
user_save(s->user);
session_save(s);
user_save(s->user);