summaryrefslogtreecommitdiff
path: root/monitor_wrap.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2012-10-31 10:35:38 +0000
committerColin Watson <cjwatson@debian.org>2012-10-31 10:35:38 +0000
commit301aad188299b268452af6b67261336c88f44ab1 (patch)
tree5ec34d429196f17ea6eb2205ca8f96da32b09dd1 /monitor_wrap.c
parent5cb249b209c170d817471b575b6d105094f137bc (diff)
* Merge from Ubuntu:
- Add support for registering ConsoleKit sessions on login. (This is currently enabled only when building for Ubuntu.)
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r--monitor_wrap.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c
index f46be660d..b758c9f72 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1310,6 +1310,37 @@ OM_uint32
1310mm_ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_desc *data, gss_buffer_desc *hash) 1310mm_ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_desc *data, gss_buffer_desc *hash)
1311{ 1311{
1312 Buffer m; 1312 Buffer m;
1313
1314#ifdef USE_CONSOLEKIT
1315char *
1316mm_consolekit_register(Session *s, const char *display)
1317{
1318 Buffer m;
1319 char *cookie;
1320
1321 debug3("%s entering", __func__);
1322
1323 if (s->ttyfd == -1)
1324 return NULL;
1325 buffer_init(&m);
1326 buffer_put_cstring(&m, s->tty);
1327 buffer_put_cstring(&m, display != NULL ? display : "");
1328 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_CONSOLEKIT_REGISTER, &m);
1329 buffer_clear(&m);
1330
1331 mm_request_receive_expect(pmonitor->m_recvfd,
1332 MONITOR_ANS_CONSOLEKIT_REGISTER, &m);
1333 cookie = buffer_get_string(&m, NULL);
1334 buffer_free(&m);
1335
1336 /* treat empty cookie as missing cookie */
1337 if (strlen(cookie) == 0) {
1338 xfree(cookie);
1339 cookie = NULL;
1340 }
1341 return (cookie);
1342}
1343#endif /* USE_CONSOLEKIT */
1313 OM_uint32 major; 1344 OM_uint32 major;
1314 u_int len; 1345 u_int len;
1315 1346