diff options
author | Hans de Goede <hdegoede@redhat.com> | 2010-10-31 08:54:37 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2010-10-31 09:07:13 +0100 |
commit | 899dc0656c7569b0c884025c714be165903016c4 (patch) | |
tree | 9362695e12444c090e94715a3c306fab5d4e2143 | |
parent | 027959474724cc026b189598facbdc6b940c586e (diff) |
vdagentd: Do not try to get active session on startup
This will fail when we are started from the initscripts as there won't be
an active session (yet). Instead get the active session when the first agent
connects (and/or when console kit signals an active session change).
Also fix a copy paste error in GetActiveSession logging.
-rw-r--r-- | console-kit.c | 12 | ||||
-rw-r--r-- | vdagentd.c | 15 |
2 files changed, 7 insertions, 20 deletions
diff --git a/console-kit.c b/console-kit.c index 6a89488..eb15939 100644 --- a/console-kit.c +++ b/console-kit.c @@ -85,11 +85,6 @@ struct console_kit *console_kit_create(FILE *errfile) return NULL; } - if (!console_kit_get_active_session(ck)) { - console_kit_destroy(ck); - return NULL; - } - return ck; } @@ -202,11 +197,11 @@ const char *console_kit_get_active_session(struct console_kit *ck) &error); if (reply == NULL || dbus_error_is_set(&error)) { if (dbus_error_is_set(&error)) { - fprintf(ck->errfile, "GetSeats failed: %s\n", + fprintf(ck->errfile, "GetActiveSession failed: %s\n", error.message); dbus_error_free(&error); } else - fprintf(ck->errfile, "GetSeats failed\n"); + fprintf(ck->errfile, "GetActiveSession failed\n"); goto exit; } @@ -236,7 +231,8 @@ exit: dbus_message_unref(message); } - return ck->active_session; + /* In case the session was changed while we were running */ + return console_kit_check_active_session_change(ck); } char *console_kit_session_for_pid(struct console_kit *ck, uint32_t pid) @@ -409,6 +409,9 @@ void update_active_session_connection(void) struct udscs_connection *new_conn = NULL; int n; + if (!active_session) + active_session = console_kit_get_active_session(console_kit); + n = udscs_server_for_all_clients(server, connection_matches_active_session, (void*)&new_conn); if (n != 1) @@ -588,11 +591,6 @@ void main_loop(void) if (FD_ISSET(ck_fd, &readfds)) { active_session = console_kit_get_active_session(console_kit); update_active_session_connection(); - if (!active_session) { - fprintf(logfile, "Fatal error: could not get active session\n"); - retval = 1; - break; - } } fflush(logfile); } @@ -678,13 +676,6 @@ int main(int argc, char *argv[]) udscs_destroy_server(server); return 1; } - active_session = console_kit_get_active_session(console_kit); - if (!active_session) { - fprintf(logfile, "Fatal could not get active session\n"); - console_kit_destroy(console_kit); - udscs_destroy_server(server); - return 1; - } main_loop(); |