]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-m3ua.c
Wrap some common code up as uint2tokary().
[tcpdump] / print-m3ua.c
index f70b6df7ba2022b404a0a652a4d18562d4eef87d..66ec9efd1ca4624ced36aba639e0e1380bcdebc5 100644 (file)
@@ -153,6 +153,16 @@ static const struct tok RoutingKeyMgmtMessages[] = {
   { 0, NULL }
 };
 
+static const struct uint_tokary m3ua_msgc2tokary[] = {
+       { M3UA_MSGC_MGMT,     MgmtMessages           },
+       { M3UA_MSGC_TRANSFER, TransferMessages       },
+       { M3UA_MSGC_SSNM,     SS7Messages            },
+       { M3UA_MSGC_ASPSM,    ASPStateMessages       },
+       { M3UA_MSGC_ASPTM,    ASPTrafficMessages     },
+       { M3UA_MSGC_RKM,      RoutingKeyMgmtMessages },
+       /* uint2tokary() does not use array termination. */
+};
+
 /* M3UA Parameters */
 #define M3UA_PARAM_INFO 0x0004
 #define M3UA_PARAM_ROUTING_CTX 0x0006
@@ -305,14 +315,7 @@ m3ua_print(netdissect_options *ndo,
     return;
 
   msg_class = GET_U_1(hdr->msg_class);
-  dict =
-    msg_class == M3UA_MSGC_MGMT     ? MgmtMessages :
-    msg_class == M3UA_MSGC_TRANSFER ? TransferMessages :
-    msg_class == M3UA_MSGC_SSNM     ? SS7Messages :
-    msg_class == M3UA_MSGC_ASPSM    ? ASPStateMessages :
-    msg_class == M3UA_MSGC_ASPTM    ? ASPTrafficMessages :
-    msg_class == M3UA_MSGC_RKM      ? RoutingKeyMgmtMessages :
-    NULL;
+  dict = uint2tokary(m3ua_msgc2tokary, msg_class);
 
   ND_PRINT("\n\t\t%s", tok2str(MessageClasses, "Unknown message class %i", msg_class));
   if (dict != NULL)