summaryrefslogtreecommitdiff
path: root/monitor_wrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r--monitor_wrap.c30
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
1154char *
1155mm_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 */