Lines Matching refs:duration
1 /* $NetBSD: duration.c,v 1.2 2024/02/21 22:52:44 christos Exp $ */
36 #include <isccfg/duration.h>
44 isccfg_duration_t *duration) {
61 /* Clear out duration. */
63 duration->parts[i] = 0;
65 duration->iso8601 = false;
66 duration->unlimited = false;
68 /* Every duration starts with 'P' */
85 duration->parts[0] = (uint32_t)lli;
103 duration->parts[1] = (uint32_t)lli;
116 duration->parts[3] = (uint32_t)lli;
135 duration->parts[4] = (uint32_t)lli;
153 duration->parts[5] = (uint32_t)lli;
166 duration->parts[6] = (uint32_t)lli;
171 /* Or is the duration configured in weeks? */
183 duration->parts[2] = (uint32_t)lli;
193 duration->iso8601 = true;
198 isccfg_parse_duration(isc_textregion_t *source, isccfg_duration_t *duration) {
201 REQUIRE(duration != NULL);
203 duration->unlimited = false;
204 result = isccfg_duration_fromtext(source, duration);
214 duration->iso8601 = false;
215 duration->parts[6] = ttl;
223 isccfg_duration_toseconds(const isccfg_duration_t *duration) {
226 REQUIRE(duration != NULL);
228 seconds += (uint64_t)duration->parts[6]; /* Seconds */
229 seconds += (uint64_t)duration->parts[5] * 60; /* Minutes */
230 seconds += (uint64_t)duration->parts[4] * 3600; /* Hours */
231 seconds += (uint64_t)duration->parts[3] * 86400; /* Days */
232 seconds += (uint64_t)duration->parts[2] * 86400 * 7; /* Weeks */
237 seconds += (uint64_t)duration->parts[1] * 86400 * 31; /* Months */
238 seconds += (uint64_t)duration->parts[0] * 86400 * 365; /* Years */