From 89c68e11dbb119c18b85de82907905daa4af72c2 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Tue, 29 Dec 2020 15:15:36 +0800 Subject: [PATCH] add function get_time_item_from_conf_ex --- HISTORY | 3 +++ src/shared_func.c | 24 ++++++++++++++++++------ src/shared_func.h | 16 ++++++++++++++++ 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/HISTORY b/HISTORY index 6e4084e..3d23133 100644 --- a/HISTORY +++ b/HISTORY @@ -1,4 +1,7 @@ +Version 1.46 2020-12-28 + * add function get_time_item_from_conf_ex + Version 1.45 2020-12-24 * add function uniq_skiplist_find_node_ex * use readdir instead of readdir_r in Linux diff --git a/src/shared_func.c b/src/shared_func.c index 56dd6d5..947e811 100644 --- a/src/shared_func.c +++ b/src/shared_func.c @@ -2220,8 +2220,20 @@ int set_rand_seed() return 0; } -int get_time_item_from_conf(IniContext *pIniContext, \ - const char *item_name, TimeInfo *pTimeInfo, \ +int get_time_item_from_conf_ex(IniFullContext *ini_ctx, + const char *item_name, TimeInfo *pTimeInfo, + const byte default_hour, const byte default_minute, + const bool bRetryGlobal) +{ + char *pValue; + pValue = iniGetStrValueEx(ini_ctx->section_name, item_name, + ini_ctx->context, bRetryGlobal); + return get_time_item_from_str(pValue, item_name, pTimeInfo, + default_hour, default_minute); +} + +int get_time_item_from_conf(IniContext *pIniContext, + const char *item_name, TimeInfo *pTimeInfo, const byte default_hour, const byte default_minute) { char *pValue; @@ -2251,8 +2263,8 @@ int get_time_item_from_str(const char *pValue, const char *item_name, count = sscanf(pValue, "%d:%d:%d", &hour, &minute, &second); if (count != 2 && count != 3) { - logError("file: "__FILE__", line: %d, " \ - "item \"%s\" 's value \"%s\" is not an valid time", \ + logError("file: "__FILE__", line: %d, " + "item \"%s\" 's value \"%s\" is not an valid time", __LINE__, item_name, pValue); return EINVAL; } @@ -2260,8 +2272,8 @@ int get_time_item_from_str(const char *pValue, const char *item_name, if ((hour < 0 || hour > 23) || (minute < 0 || minute > 59) || (second < 0 || second > 59)) { - logError("file: "__FILE__", line: %d, " \ - "item \"%s\" 's value \"%s\" is not an valid time", \ + logError("file: "__FILE__", line: %d, " + "item \"%s\" 's value \"%s\" is not an valid time", __LINE__, item_name, pValue); return EINVAL; } diff --git a/src/shared_func.h b/src/shared_func.h index 6b356b4..0d691c6 100644 --- a/src/shared_func.h +++ b/src/shared_func.h @@ -519,6 +519,22 @@ void set_log_level(char *pLogLevel); int load_allow_hosts(IniContext *pIniContext, \ in_addr_t **allow_ip_addrs, int *allow_ip_count); + +/** get time item from config context + * parameters: + * ini_ctx: the full ini context + * item_name: item name in config file, time format as hour:minute, such as 15:25 + * pTimeInfo: store time info + * default_hour: default hour value + * default_minute: default minute value + * bRetryGlobal: if fetch from global section when the item not exist + * return: error no , 0 success, != 0 fail +*/ +int get_time_item_from_conf_ex(IniFullContext *ini_ctx, + const char *item_name, TimeInfo *pTimeInfo, + const byte default_hour, const byte default_minute, + const bool bRetryGlobal); + /** get time item from config context * parameters: * pIniContext: the config context -- GitLab