]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
datatype: display 0s time datatype
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 25 Jan 2024 16:31:45 +0000 (17:31 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 22 Jan 2025 23:41:54 +0000 (00:41 +0100)
commit 072c83e9a18399249fbc4343f7d0b5b04c29e6fb upstream.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/datatype.c

index fa279a5a0013ecfba231a3a2dba14407c47b3a0e..ac0221a8d30406a2d848285d68f82176cd48b9ba 100644 (file)
@@ -918,6 +918,7 @@ const struct datatype icmpx_code_type = {
 void time_print(uint64_t ms, struct output_ctx *octx)
 {
        uint64_t days, hours, minutes, seconds;
+       bool printed = false;
 
        if (nft_output_seconds(octx)) {
                nft_print(octx, "%" PRIu64 "s", ms / 1000);
@@ -936,16 +937,29 @@ void time_print(uint64_t ms, struct output_ctx *octx)
        seconds = ms / 1000;
        ms %= 1000;
 
-       if (days > 0)
+       if (days > 0) {
                nft_print(octx, "%" PRIu64 "d", days);
-       if (hours > 0)
+               printed = true;
+       }
+       if (hours > 0) {
                nft_print(octx, "%" PRIu64 "h", hours);
-       if (minutes > 0)
+               printed = true;
+       }
+       if (minutes > 0) {
                nft_print(octx, "%" PRIu64 "m", minutes);
-       if (seconds > 0)
+               printed = true;
+       }
+       if (seconds > 0) {
                nft_print(octx, "%" PRIu64 "s", seconds);
-       if (ms > 0)
+               printed = true;
+       }
+       if (ms > 0) {
                nft_print(octx, "%" PRIu64 "ms", ms);
+               printed = true;
+       }
+
+       if (!printed)
+               nft_print(octx, "0s");
 }
 
 enum {