summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Dedecker2020-12-08 17:31:25 +0000
committerHans Dedecker2020-12-08 17:35:15 +0000
commit3999b6d3947bcaa2def874311b427a2ea0efba5b (patch)
treee34ab1033373caf0f3d95e9868701faa18060db6
parente99e029626f2044e65870e74f22c96865297bfbf (diff)
downloadodhcp6c-3999b6d3947bcaa2def874311b427a2ea0efba5b.tar.gz
dhcpv6: rework DHCPv6 message to string implementation
As the DHCPv6 messages handled by odhcp6c are not numerical consecutive drop the DHCPv6 message string array Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r--src/dhcpv6.c49
1 files changed, 34 insertions, 15 deletions
diff --git a/src/dhcpv6.c b/src/dhcpv6.c
index e819189..312e7aa 100644
--- a/src/dhcpv6.c
+++ b/src/dhcpv6.c
@@ -124,23 +124,42 @@ static uint32_t ntohl_unaligned(const uint8_t *data)
static char *dhcpv6_msg_to_str(enum dhcpv6_msg msg)
{
- static char *dhcpv6_msg_str[] = {
- "UNKNOWN",
- "SOLICIT",
- "ADVERTISE",
- "REQUEST",
- "RENEW",
- "REBIND",
- "REPLY",
- "DECLINE",
- "RECONFIGURE",
- "INFORMATION REQUEST",
- };
+ switch (msg) {
+ case DHCPV6_MSG_SOLICIT:
+ return "SOLICIT";
+
+ case DHCPV6_MSG_ADVERT:
+ return "ADVERTISE";
+
+ case DHCPV6_MSG_REQUEST:
+ return "REQUEST";
+
+ case DHCPV6_MSG_RENEW:
+ return "RENEW";
+
+ case DHCPV6_MSG_REBIND:
+ return "REBIND";
- if (msg < _DHCPV6_MSG_MAX)
- return dhcpv6_msg_str[msg];
+ case DHCPV6_MSG_REPLY:
+ return "REPLY";
+
+ case DHCPV6_MSG_RELEASE:
+ return "RELEASE";
+
+ case DHCPV6_MSG_DECLINE:
+ return "DECLINE";
+
+ case DHCPV6_MSG_RECONF:
+ return "RECONFIGURE";
+
+ case DHCPV6_MSG_INFO_REQ:
+ return "INFORMATION REQUEST";
+
+ default:
+ break;
+ }
- return "Unknown";
+ return "UNKNOWN";
}
int init_dhcpv6(const char *ifname, unsigned int options, int sol_timeout)