diff options
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 */ | ||