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;