From: Maxim Karasev mxkrsv@etersoft.ru
--- programs/klist/klist.rc | 1 + programs/klist/main.c | 14 +++++++++----- programs/klist/resources.h | 1 + 3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/programs/klist/klist.rc b/programs/klist/klist.rc index 2f3605f2a0a..17fa043acc7 100644 --- a/programs/klist/klist.rc +++ b/programs/klist/klist.rc @@ -34,4 +34,5 @@ STRINGTABLE STRING_SERVER, "Server" STRING_ENCRYPTION_TYPE, "KerbTicket Encryption Type" STRING_LOGON_ID, "Current LogonId is" + STRING_CLIENT, "Client" } diff --git a/programs/klist/main.c b/programs/klist/main.c index ef8d440e05f..cfc7c309317 100644 --- a/programs/klist/main.c +++ b/programs/klist/main.c @@ -147,10 +147,10 @@ static int tickets(void) ULONG kerberos_package;
KERB_QUERY_TKT_CACHE_REQUEST kerberos_cache_request = { - .MessageType = KerbQueryTicketCacheMessage, + .MessageType = KerbQueryTicketCacheExMessage, .LogonId = {0}, }; - KERB_QUERY_TKT_CACHE_RESPONSE *kerberos_cache; + KERB_QUERY_TKT_CACHE_EX_RESPONSE *kerberos_cache; ULONG kerberos_cache_size; NTSTATUS kerberos_call_status;
@@ -196,7 +196,7 @@ static int tickets(void)
for (i = 0; i < kerberos_cache->CountOfTickets; i++) { - KERB_TICKET_CACHE_INFO ticket = kerberos_cache->Tickets[i]; + KERB_TICKET_CACHE_INFO_EX ticket = kerberos_cache->Tickets[i]; const FILETIME *const filetimes[] = { (FILETIME*)&ticket.StartTime, (FILETIME*)&ticket.EndTime, (FILETIME*)&ticket.RenewTime }; const WCHAR *dates[3]; @@ -207,9 +207,13 @@ static int tickets(void) wprintf(L"\n"); wprintf(L"#%ld>", i);
- wprintf(L" %ls: %.*ls @ %.*ls\n", load_resource(STRING_SERVER), + wprintf(L" %ls: %.*ls @ %.*ls\n", load_resource(STRING_CLIENT), + ticket.ClientName.Length / sizeof(WCHAR), ticket.ClientName.Buffer, + ticket.ClientRealm.Length / sizeof(WCHAR), ticket.ClientRealm.Buffer); + + wprintf(L" %ls: %.*ls @ %.*ls\n", load_resource(STRING_SERVER), ticket.ServerName.Length / sizeof(WCHAR), ticket.ServerName.Buffer, - ticket.RealmName.Length / sizeof(WCHAR), ticket.RealmName.Buffer); + ticket.ServerRealm.Length / sizeof(WCHAR), ticket.ServerRealm.Buffer);
etype_text = get_etype_text(ticket.EncryptionType); wprintf(L" %ls: ", load_resource(STRING_ENCRYPTION_TYPE)); diff --git a/programs/klist/resources.h b/programs/klist/resources.h index 5d1437cec40..afdca284548 100644 --- a/programs/klist/resources.h +++ b/programs/klist/resources.h @@ -28,3 +28,4 @@ #define STRING_SERVER 1007 #define STRING_ENCRYPTION_TYPE 1008 #define STRING_LOGON_ID 1009 +#define STRING_CLIENT 1010