From 562b8f39d14fbcbabb9b39547c3ac81516f6b6d2 Mon Sep 17 00:00:00 2001 From: Ben Kaduk Date: Wed, 27 Nov 2013 17:31:16 -0500 Subject: [PATCH] rx: Named values for securityObjectStats types Stop using hardcoded constants and use defined symbols for these values. Change-Id: I3edcf809572cb8c8360af19dcab7a12c4d1be4a9 Reviewed-on: http://gerrit.openafs.org/10528 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot --- src/rx/rx.h | 14 +++++++++++++- src/rxdebug/rxdebug.c | 10 +++++----- src/rxkad/rxkad_common.c | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/rx/rx.h b/src/rx/rx.h index 859fe990c..678d921db 100644 --- a/src/rx/rx.h +++ b/src/rx/rx.h @@ -521,8 +521,20 @@ typedef enum { RX_SECIDX_K5 = 5, /** kerberos 5 tickets as tokens. */ } rx_securityIndex; +/* + * We use an enum for the symbol definitions but have no need for a typedef + * because the enum is at least as wide as 'int' and these have to fit into + * a field of type 'char'. Direct assigment will do the right thing if the + * enum value fits into that type. + */ +enum { + RX_SECTYPE_UNK = 0, + RX_SECTYPE_NULL = 1, + RX_SECTYPE_VAB = 2, + RX_SECTYPE_KAD = 3, +}; struct rx_securityObjectStats { - char type; /* 0:unk 1:null,2:vab 3:kad */ + char type; /* An RX_SECTYPE_* value */ char level; char sparec[10]; /* force correct alignment */ afs_int32 flags; /* 1=>unalloc, 2=>auth, 4=>expired */ diff --git a/src/rxdebug/rxdebug.c b/src/rxdebug/rxdebug.c index 15f91e24c..7b23cbca5 100644 --- a/src/rxdebug/rxdebug.c +++ b/src/rxdebug/rxdebug.c @@ -367,7 +367,7 @@ MainCommand(struct cmd_syndesc *as, void *arock) } else { if (tconn.securityIndex != RX_SECIDX_KAD) continue; - if (withSecStats && (tconn.secStats.type == 3) + if (withSecStats && (tconn.secStats.type == RX_SECTYPE_KAD) && (tconn.secStats.level != onlyAuth)) continue; } @@ -413,20 +413,20 @@ MainCommand(struct cmd_syndesc *as, void *arock) if (withSecStats) { switch ((int)tconn.secStats.type) { - case 0: + case RX_SECTYPE_UNK: if (tconn.securityIndex == RX_SECIDX_KAD) printf (" no GetStats procedure for security object\n"); break; - case 1: + case RX_SECTYPE_NULL: printf(" rxnull level=%d, flags=%d\n", tconn.secStats.level, tconn.secStats.flags); break; - case 2: + case RX_SECTYPE_VAB: printf(" rxvab level=%d, flags=%d\n", tconn.secStats.level, tconn.secStats.flags); break; - case 3:{ + case RX_SECTYPE_KAD:{ char *level; char flags = tconn.secStats.flags; if (tconn.secStats.level == 0) diff --git a/src/rxkad/rxkad_common.c b/src/rxkad/rxkad_common.c index 1e46efb59..091685420 100644 --- a/src/rxkad/rxkad_common.c +++ b/src/rxkad/rxkad_common.c @@ -597,7 +597,7 @@ rxkad_GetStats(struct rx_securityClass *aobj, struct rx_connection *aconn, { void *securityData; - astats->type = 3; + astats->type = RX_SECTYPE_KAD; astats->level = ((struct rxkad_cprivate *)aobj->privateData)->level; securityData = rx_GetSecurityData(aconn); -- 2.39.5