diff options
author | Colin Watson <cjwatson@ubuntu.com> | 2014-02-09 16:09:57 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2015-08-19 16:33:32 +0100 |
commit | 8b3111d597316954caaf8ddf2e7746491976c248 (patch) | |
tree | 2640968377507c4cb89aa8f044984ae5dfb8df85 /monitor_wrap.c | |
parent | 9a440da8025dbc120803ee09c2a7ac8c638d31c2 (diff) |
Add support for registering ConsoleKit sessions on login
Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1450
Last-Updated: 2015-08-19
Patch-Name: consolekit.patch
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r-- | monitor_wrap.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c index 5aa9c4758..a5f4e9d3c 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -1150,3 +1150,33 @@ mm_ssh_gssapi_update_creds(ssh_gssapi_ccache *store) | |||
1150 | 1150 | ||
1151 | #endif /* GSSAPI */ | 1151 | #endif /* GSSAPI */ |
1152 | 1152 | ||
1153 | #ifdef USE_CONSOLEKIT | ||
1154 | char * | ||
1155 | mm_consolekit_register(Session *s, const char *display) | ||
1156 | { | ||
1157 | Buffer m; | ||
1158 | char *cookie; | ||
1159 | |||
1160 | debug3("%s entering", __func__); | ||
1161 | |||
1162 | if (s->ttyfd == -1) | ||
1163 | return NULL; | ||
1164 | buffer_init(&m); | ||
1165 | buffer_put_cstring(&m, s->tty); | ||
1166 | buffer_put_cstring(&m, display != NULL ? display : ""); | ||
1167 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_CONSOLEKIT_REGISTER, &m); | ||
1168 | buffer_clear(&m); | ||
1169 | |||
1170 | mm_request_receive_expect(pmonitor->m_recvfd, | ||
1171 | MONITOR_ANS_CONSOLEKIT_REGISTER, &m); | ||
1172 | cookie = buffer_get_string(&m, NULL); | ||
1173 | buffer_free(&m); | ||
1174 | |||
1175 | /* treat empty cookie as missing cookie */ | ||
1176 | if (strlen(cookie) == 0) { | ||
1177 | free(cookie); | ||
1178 | cookie = NULL; | ||
1179 | } | ||
1180 | return (cookie); | ||
1181 | } | ||
1182 | #endif /* USE_CONSOLEKIT */ | ||