From: Timo Sirainen Date: Fri, 6 May 2016 18:44:22 +0000 (+0300) Subject: lib-settings: Added SET_TIME_MSECS type. X-Git-Tag: 2.3.0.rc1~3814 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f69f7373151940308b18a9e16f9cf3dc56d4184e;p=thirdparty%2Fdovecot%2Fcore.git lib-settings: Added SET_TIME_MSECS type. --- diff --git a/src/lib-settings/settings-parser.c b/src/lib-settings/settings-parser.c index 537685908f..6023ee1818 100644 --- a/src/lib-settings/settings-parser.c +++ b/src/lib-settings/settings-parser.c @@ -671,6 +671,12 @@ settings_parse(struct setting_parser_context *ctx, struct setting_link *link, return -1; } break; + case SET_TIME_MSECS: + if (settings_get_time_msecs(value, (unsigned int *)ptr, &error) < 0) { + ctx->error = p_strdup(ctx->parser_pool, error); + return -1; + } + break; case SET_SIZE: if (settings_get_size(value, (uoff_t *)ptr, &error) < 0) { ctx->error = p_strdup(ctx->parser_pool, error); @@ -1281,6 +1287,7 @@ settings_var_expand_info(const struct setting_parser_info *info, void *set, case SET_UINT: case SET_UINT_OCT: case SET_TIME: + case SET_TIME_MSECS: case SET_SIZE: case SET_IN_PORT: case SET_STR: @@ -1377,6 +1384,7 @@ bool settings_vars_have_key(const struct setting_parser_info *info, void *set, case SET_UINT: case SET_UINT_OCT: case SET_TIME: + case SET_TIME_MSECS: case SET_SIZE: case SET_IN_PORT: case SET_STR: @@ -1449,7 +1457,8 @@ setting_copy(enum setting_type type, const void *src, void *dest, pool_t pool) } case SET_UINT: case SET_UINT_OCT: - case SET_TIME: { + case SET_TIME: + case SET_TIME_MSECS: { const unsigned int *src_uint = src; unsigned int *dest_uint = dest; @@ -1582,6 +1591,7 @@ settings_changes_dup(const struct setting_parser_info *info, case SET_UINT: case SET_UINT_OCT: case SET_TIME: + case SET_TIME_MSECS: case SET_SIZE: case SET_IN_PORT: case SET_STR_VARS: diff --git a/src/lib-settings/settings-parser.h b/src/lib-settings/settings-parser.h index 03496ee29f..28b3fac78d 100644 --- a/src/lib-settings/settings-parser.h +++ b/src/lib-settings/settings-parser.h @@ -22,6 +22,7 @@ enum setting_type { SET_UINT, SET_UINT_OCT, SET_TIME, + SET_TIME_MSECS, SET_SIZE, SET_IN_PORT, /* internet port */ SET_STR, @@ -61,6 +62,10 @@ struct setting_define { { SET_TIME + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE( \ ((struct struct_name *)0)->name, unsigned int), \ #name, offsetof(struct struct_name, name), NULL } +#define SETTING_DEFINE_STRUCT_TIME_MSECS(name, struct_name) \ + { SET_TIME_MSECS + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE( \ + ((struct struct_name *)0)->name, unsigned int), \ + #name, offsetof(struct struct_name, name), NULL } #define SETTING_DEFINE_STRUCT_STR(name, struct_name) \ { SET_STR + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE( \ ((struct struct_name *)0)->name, const char *), \