diff options
Diffstat (limited to 'src/plugins/dhcp/dhcp6_ia_na_client_cp.c')
-rw-r--r-- | src/plugins/dhcp/dhcp6_ia_na_client_cp.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/plugins/dhcp/dhcp6_ia_na_client_cp.c b/src/plugins/dhcp/dhcp6_ia_na_client_cp.c index b48559929e4..4d59f607fe1 100644 --- a/src/plugins/dhcp/dhcp6_ia_na_client_cp.c +++ b/src/plugins/dhcp/dhcp6_ia_na_client_cp.c @@ -557,8 +557,8 @@ dhcp6_clients_show_command_function (vlib_main_t * vm, clib_error_t *error = 0; client_state_t *cs; f64 current_time = vlib_time_now (vm); - char buf1[256]; - char buf2[256]; + u8 *buf1 = 0; + u8 *buf2 = 0; const char *rebinding; u32 i; @@ -567,26 +567,28 @@ dhcp6_clients_show_command_function (vlib_main_t * vm, cs = &rm->client_state_by_sw_if_index[i]; if (cs->enabled) { + vec_reset_length (buf1); + vec_reset_length (buf2); if (cs->T1_due_time != DBL_MAX && cs->T1_due_time > current_time) { - sprintf (buf1, "%u remaining", - (u32) round (cs->T1_due_time - current_time)); + buf1 = format (buf1, "%u remaining", + (u32) round (cs->T1_due_time - current_time)); } else - sprintf (buf1, "timeout"); + buf1 = format (buf1, "timeout"); if (cs->T2_due_time != DBL_MAX && cs->T2_due_time > current_time) - sprintf (buf2, "%u remaining", - (u32) round (cs->T2_due_time - current_time)); + buf2 = format (buf2, "%u remaining", + (u32) round (cs->T2_due_time - current_time)); else - sprintf (buf2, "timeout"); + buf2 = format (buf2, "timeout"); if (cs->rebinding) rebinding = ", REBINDING"; else rebinding = ""; if (cs->T1) vlib_cli_output (vm, - "sw_if_index: %u, T1: %u (%s), " - "T2: %u (%s), server index: %d%s", i, + "sw_if_index: %u, T1: %u (%v), " + "T2: %u (%v), server index: %d%s", i, cs->T1, buf1, cs->T2, buf2, cs->server_index, rebinding); else @@ -594,6 +596,9 @@ dhcp6_clients_show_command_function (vlib_main_t * vm, } } + vec_free (buf1); + vec_free (buf2); + return error; } |