Hans Leidekker (@hans) commented about programs/klist/main.c:
- EXPAND_KERB_ETYPE(DES_EDE3_CBC_ENV); \
- EXPAND_KERB_ETYPE(DSA_SIGN); \
- EXPAND_KERB_ETYPE(DES3_CBC_MD5); \
- EXPAND_KERB_ETYPE(DES3_CBC_SHA1); \
- EXPAND_KERB_ETYPE(DES3_CBC_SHA1_KD); \
- EXPAND_KERB_ETYPE(DES_CBC_MD5_NT); \
- EXPAND_KERB_ETYPE(RC4_HMAC_NT); \
- EXPAND_KERB_ETYPE(RC4_HMAC_NT_EXP); \
- default: return NULL; }
+#define EXPAND_KERB_TICKET_FLAG(x, y) if (x & KERB_TICKET_FLAGS_##y) { wprintf(L" %ls", L ## #y); }
+#define EXPAND_KERB_TICKET_FLAGS(x) EXPAND_KERB_TICKET_FLAG(x, reserved) \
- EXPAND_KERB_TICKET_FLAG(x, forwardable) \
- EXPAND_KERB_TICKET_FLAG(x, forwarded) \
- EXPAND_KERB_TICKET_FLAG(x, proxiable) \
Same here, this can be inlined in tickets(): ``` static int tickets(void) { ... wprintf(L" Ticket Flags: 0x%lx ->", ticket.TicketFlags); #define EXPAND_TICKET_FLAG(x, y) if (x & KERB_TICKET_FLAGS_##y) { wprintf(L" %ls", L ## #y); } EXPAND_TICKET_FLAG(ticket.TicketFlags, forwardable) EXPAND_TICKET_FLAG(ticket.TicketFlags, forwarded) ... #undef EXPAND_TICKET_FLAG wprintf(L"\n"); ```