summaryrefslogtreecommitdiff
path: root/src/network/networkd-address.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-07-15 18:48:56 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-07-15 19:17:32 +0900
commit0fd97a253379a4e6713a588a49f25c64f062a34e (patch)
tree4b02dbc3875bb9e71e6a7f8e55abdd8ba82b35e0 /src/network/networkd-address.h
parent6c39b39aa8216f831c44a2fbdce1b98b4cbfb5a6 (diff)
downloadsystemd-0fd97a253379a4e6713a588a49f25c64f062a34e.tar.gz
network: introduce FORMAT_LIFETIME()
Fixes a bug introduced by 5291f26d4a6450d1fbf3656640ef20c5e78aa6a5. Fixes #20227.
Diffstat (limited to 'src/network/networkd-address.h')
-rw-r--r--src/network/networkd-address.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/network/networkd-address.h b/src/network/networkd-address.h
index ff3d46abdd..1569b588a0 100644
--- a/src/network/networkd-address.h
+++ b/src/network/networkd-address.h
@@ -50,6 +50,13 @@ typedef struct Address {
address_ready_callback_t callback;
} Address;
+char *format_lifetime(char *buf, size_t l, uint32_t lifetime) _warn_unused_result_;
+/* Note: the lifetime of the compound literal is the immediately surrounding block,
+ * see C11 ยง6.5.2.5, and
+ * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks */
+#define FORMAT_LIFETIME(lifetime) \
+ format_lifetime((char[FORMAT_TIMESPAN_MAX+STRLEN("for ")]){}, FORMAT_TIMESPAN_MAX+STRLEN("for "), lifetime)
+
int address_new(Address **ret);
Address *address_free(Address *address);
int address_get(Link *link, const Address *in, Address **ret);