diff options
-rw-r--r-- | src/userlist.c | 3 | ||||
-rw-r--r-- | src/userlist.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/userlist.c b/src/userlist.c index 6e1f3d2..fffe772 100644 --- a/src/userlist.c +++ b/src/userlist.c @@ -110,6 +110,9 @@ int getUserList( struct user *outbuf, int size ) outbuf[use].sessionLeader = u->ut_pid; getSessionData( &outbuf[use] ); printf( "New Session: '%s' on '%s', Display '%s', logind session '%s', login pid '%d', utmp pid '%d'.\n", outbuf[use].user, outbuf[use].device, outbuf[use].display, outbuf[use].sessionName, (int)outbuf[use].sessionHead, (int)outbuf[use].sessionLeader ); + } else if ( outbuf[use].sessionName[0] == '\0' && outbuf[use].loginctlFails < 5 ) { + getSessionData( &outbuf[use] ); + outbuf[use].loginctlFails++; } outbuf[use].mark = true; // Reset offset if timestamp changed diff --git a/src/userlist.h b/src/userlist.h index c0ffc2f..ca7a70b 100644 --- a/src/userlist.h +++ b/src/userlist.h @@ -17,6 +17,7 @@ struct user { int lastWarnLevel; int lastActivityOffset; int lockTimeOffset; + int loginctlFails; bool mark; bool isLocked; char user[STRLEN]; |