Lines 88-93
extern int loginsuccess(const char *User, const char *Host, const char *Tty, cha
Link Here
|
88 |
#endif |
88 |
#endif |
89 |
#include <signal.h> |
89 |
#include <signal.h> |
90 |
|
90 |
|
|
|
91 |
#include <unistd.h> |
92 |
#define LOGIND_RUNNING() (access("/run/systemd/seats/", F_OK) >= 0) |
93 |
|
91 |
/* |
94 |
/* |
92 |
* Session data, mostly what struct verify_info was for |
95 |
* Session data, mostly what struct verify_info was for |
93 |
*/ |
96 |
*/ |
Lines 1342-1352
startClient(volatile int *pid)
Link Here
|
1342 |
strcpy(curuser, p->pw_name); /* Use normalized login name. */ |
1345 |
strcpy(curuser, p->pw_name); /* Use normalized login name. */ |
1343 |
|
1346 |
|
1344 |
#ifdef HAVE_CKCONNECTOR |
1347 |
#ifdef HAVE_CKCONNECTOR |
1345 |
if (!(ckConnector = ck_connector_new())) { |
1348 |
if (!LOGIND_RUNNING()) { |
1346 |
logOutOfMem(); |
1349 |
if (!(ckConnector = ck_connector_new())) { |
1347 |
V_RET; |
1350 |
logOutOfMem(); |
|
|
1351 |
V_RET; |
1352 |
} |
1348 |
} |
1353 |
} |
1349 |
|
|
|
1350 |
# ifdef HAVE_VTS |
1354 |
# ifdef HAVE_VTS |
1351 |
if (td->serverVT > 0) |
1355 |
if (td->serverVT > 0) |
1352 |
sprintf(ckDeviceBuf, "/dev/tty%d", td->serverVT); |
1356 |
sprintf(ckDeviceBuf, "/dev/tty%d", td->serverVT); |
Lines 1390-1396
startClient(volatile int *pid)
Link Here
|
1390 |
"Warning: Cannot open ConsoleKit session: %s", |
1394 |
"Warning: Cannot open ConsoleKit session: %s", |
1391 |
error.message); |
1395 |
error.message); |
1392 |
dbus_error_free(&error); |
1396 |
dbus_error_free(&error); |
1393 |
} else { |
1397 |
} else if (!LOGIND_RUNNING()) { |
1394 |
logError("Cannot open ConsoleKit session, likely OOM\n"); |
1398 |
logError("Cannot open ConsoleKit session, likely OOM\n"); |
1395 |
displayStr(V_MSG_ERR, |
1399 |
displayStr(V_MSG_ERR, |
1396 |
"Warning: Cannot open ConsoleKit session."); |
1400 |
"Warning: Cannot open ConsoleKit session."); |
Lines 1452-1459
startClient(volatile int *pid)
Link Here
|
1452 |
env = setEnv(env, "KRBTKFILE", krbtkfile); |
1456 |
env = setEnv(env, "KRBTKFILE", krbtkfile); |
1453 |
#endif |
1457 |
#endif |
1454 |
#ifdef HAVE_CKCONNECTOR |
1458 |
#ifdef HAVE_CKCONNECTOR |
1455 |
env = setEnv(env, "XDG_SESSION_COOKIE", |
1459 |
if (!LOGIND_RUNNING()) { |
1456 |
ck_connector_get_cookie(ckConnector)); |
1460 |
env = setEnv(env, "XDG_SESSION_COOKIE", |
|
|
1461 |
ck_connector_get_cookie(ckConnector)); |
1462 |
} |
1457 |
#endif |
1463 |
#endif |
1458 |
userEnviron = inheritEnv(env, envvars); |
1464 |
userEnviron = inheritEnv(env, envvars); |
1459 |
env = systemEnv(0, curuser); |
1465 |
env = systemEnv(0, curuser); |
Lines 1949-1966
clientExited(void)
Link Here
|
1949 |
#endif |
1955 |
#endif |
1950 |
|
1956 |
|
1951 |
#ifdef HAVE_CKCONNECTOR |
1957 |
#ifdef HAVE_CKCONNECTOR |
1952 |
if (ckConnector) { |
1958 |
if (!LOGIND_RUNNING()) { |
1953 |
dbus_error_init(&error); |
1959 |
if (ckConnector) { |
1954 |
if (!ck_connector_close_session(ckConnector, &error)) { |
1960 |
dbus_error_init(&error); |
1955 |
if (dbus_error_is_set(&error)) { |
1961 |
if (!ck_connector_close_session(ckConnector, &error)) { |
1956 |
logError("Cannot close ConsoleKit session: %s\n", error.message); |
1962 |
if (dbus_error_is_set(&error)) { |
1957 |
dbus_error_free(&error); |
1963 |
logError("Cannot close ConsoleKit session: %s\n", error.message); |
1958 |
} else { |
1964 |
dbus_error_free(&error); |
1959 |
logError("Cannot close ConsoleKit session, likely OOM\n"); |
1965 |
} else { |
|
|
1966 |
logError("Cannot close ConsoleKit session, likely OOM\n"); |
1967 |
} |
1960 |
} |
1968 |
} |
|
|
1969 |
ck_connector_unref(ckConnector); |
1970 |
ckConnector = 0; |
1961 |
} |
1971 |
} |
1962 |
ck_connector_unref(ckConnector); |
|
|
1963 |
ckConnector = 0; |
1964 |
} |
1972 |
} |
1965 |
#endif |
1973 |
#endif |
1966 |
} |
1974 |
} |
1967 |
- |
|
|