Mercurial > dovecot > core-2.2
changeset 22625:2a8509a8a66e
doveadm director: Parse timestamp parameters with str_to_time()
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 26 Oct 2017 12:44:34 +0300 |
parents | f7e2f55e6e91 |
children | 989dcf906522 |
files | src/doveadm/doveadm-director.c |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-director.c Wed Oct 25 17:22:42 2017 +0300 +++ b/src/doveadm/doveadm-director.c Thu Oct 26 12:44:34 2017 +0300 @@ -152,7 +152,7 @@ cmd_director_status_user(struct director_context *ctx) { const char *line, *const *args; - unsigned int expires; + time_t expires; director_send(ctx, t_strdup_printf("USER-LOOKUP\t%s\t%s\n", ctx->user, ctx->tag != NULL ? ctx->tag : "")); @@ -164,7 +164,7 @@ args = t_strsplit_tabescaped(line); if (str_array_length(args) != 4 || - str_to_uint(args[1], &expires) < 0) { + str_to_time(args[1], &expires) < 0) { i_error("Invalid reply from director"); doveadm_exit_code = EX_PROTOCOL; return; @@ -337,7 +337,8 @@ pool_t pool; HASH_TABLE_TYPE(user_list) users; struct user_list *user; - unsigned int ips_count, user_hash, expires; + unsigned int ips_count, user_hash; + time_t expires; ctx = cmd_director_init(cctx); @@ -402,7 +403,7 @@ args = t_strsplit_tabescaped(line); if (str_array_length(args) < 3 || str_to_uint(args[0], &user_hash) < 0 || - str_to_uint(args[1], &expires) < 0 || + str_to_time(args[1], &expires) < 0 || net_addr2ip(args[2], &user_ip) < 0) { i_error("Invalid USER-LIST reply: %s", line); doveadm_exit_code = EX_PROTOCOL; @@ -862,7 +863,6 @@ { struct director_context *ctx; const char *line, *const *args; - unsigned long l; ctx = cmd_director_init(cctx); @@ -878,16 +878,18 @@ if (*line == '\0') break; T_BEGIN { + time_t ts; + args = t_strsplit_tabescaped(line); if (str_array_length(args) >= 5 && - str_to_ulong(args[3], &l) == 0) { + str_to_time(args[3], &ts) == 0) { doveadm_print(args[0]); doveadm_print(args[1]); doveadm_print(args[2]); - if (l == 0) + if (ts == 0) doveadm_print("never"); else - doveadm_print(unixdate2str(l)); + doveadm_print(unixdate2str(ts)); doveadm_print(args[4]); } } T_END;