Mercurial > dovecot > core-2.2
diff src/director/director-connection.c @ 19289:4e0c9df36a78
director: Small code cleanup - make it easier to add parameters to SYNC
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 11 Oct 2015 18:45:58 +0300 |
parents | 0f9d4f1a083d |
children | bae8efd8b5b3 |
line wrap: on
line diff
--- a/src/director/director-connection.c Sat Oct 10 18:32:56 2015 +0300 +++ b/src/director/director-connection.c Sun Oct 11 18:45:58 2015 +0300 @@ -1320,23 +1320,22 @@ struct director_host *host; struct ip_addr ip; in_port_t port; - unsigned int seq, minor_version = 0, timestamp = ioloop_time; + unsigned int arg_count, seq, minor_version = 0, timestamp = ioloop_time; - if (str_array_length(args) < 3 || + arg_count = str_array_length(args); + if (arg_count < 3 || !director_args_parse_ip_port(conn, args, &ip, &port) || str_to_uint(args[2], &seq) < 0) { director_cmd_error(conn, "Invalid parameters"); return FALSE; } - if (args[3] != NULL) { - if (str_to_uint(args[3], &minor_version) < 0) { - director_cmd_error(conn, "Invalid parameters"); - return FALSE; - } - if (args[4] != NULL && str_to_uint(args[4], ×tamp) < 0) { - director_cmd_error(conn, "Invalid parameters"); - return FALSE; - } + if (arg_count >= 4 && str_to_uint(args[3], &minor_version) < 0) { + director_cmd_error(conn, "Invalid parameters"); + return FALSE; + } + if (arg_count >= 5 && str_to_uint(args[4], ×tamp) < 0) { + director_cmd_error(conn, "Invalid parameters"); + return FALSE; } /* find the originating director. if we don't see it, it was already