dovecot-2.2: Changed type of internet port values to in_port_t e...

dovecot at dovecot.org dovecot at dovecot.org
Sat Aug 29 11:50:15 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/aabfe48db1cf
changeset: 19035:aabfe48db1cf
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Sat Aug 29 14:26:30 2015 +0300
description:
Changed type of internet port values to in_port_t everywhere.
Created special SET_IN_PORT setting type for internet port values.
Created net_str2port() for parsing internet port values.
Removed several atoi() invocations in the process.

diffstat:

 src/auth/auth-request.c                            |   8 +-
 src/auth/auth-request.h                            |   2 +-
 src/auth/passdb-imap.c                             |   3 +-
 src/config/config-request.c                        |   8 +++
 src/director/director-connection.c                 |  20 +++++----
 src/director/director-host.c                       |  11 ++--
 src/director/director-host.h                       |   8 +-
 src/director/director-settings.c                   |   2 +-
 src/director/director-settings.h                   |   4 +-
 src/director/director-test.c                       |   2 +-
 src/director/director.c                            |   4 +-
 src/director/director.h                            |   6 +-
 src/director/doveadm-connection.c                  |   8 +-
 src/director/login-connection.c                    |   8 +-
 src/director/main.c                                |  15 +++---
 src/doveadm/client-connection.h                    |   2 +-
 src/doveadm/doveadm-auth.c                         |   6 +-
 src/doveadm/doveadm-director.c                     |   8 +-
 src/doveadm/doveadm-mail-server.c                  |   5 +-
 src/doveadm/doveadm-settings.c                     |   2 +-
 src/doveadm/doveadm-settings.h                     |   4 +-
 src/doveadm/doveadm-util.c                         |  14 +++---
 src/doveadm/doveadm-util.h                         |   6 +-
 src/doveadm/doveadm-zlib.c                         |   5 +-
 src/doveadm/server-connection.c                    |   2 +-
 src/imap-hibernate/imap-client.h                   |   2 +-
 src/imap-hibernate/imap-hibernate-client.c         |   4 +-
 src/imap-login/client.c                            |  16 +++---
 src/imap-urlauth/imap-urlauth-worker-settings.c    |   2 +-
 src/imap-urlauth/imap-urlauth-worker-settings.h    |   2 +-
 src/imap/imap-client-hibernate.c                   |   2 +-
 src/imap/imap-master-client.c                      |   7 +-
 src/imap/imap-settings.c                           |   2 +-
 src/imap/imap-settings.h                           |   4 +-
 src/lib-auth/auth-client.h                         |   2 +-
 src/lib-auth/auth-master.h                         |   2 +-
 src/lib-dict/dict-memcached-ascii.c                |   4 +-
 src/lib-dict/dict-memcached.c                      |   4 +-
 src/lib-dict/dict-redis.c                          |   5 +-
 src/lib-http/http-client-connection.c              |   2 +-
 src/lib-http/http-server-connection.c              |   2 +-
 src/lib-http/test-http-server.c                    |   4 +-
 src/lib-imap-client/imapc-client.h                 |   4 +-
 src/lib-imap-urlauth/imap-urlauth-private.h        |   2 +-
 src/lib-imap-urlauth/imap-urlauth.h                |   4 +-
 src/lib-lda/lmtp-client.c                          |   4 +-
 src/lib-lda/lmtp-client.h                          |   4 +-
 src/lib-lda/smtp-client.c                          |   5 +-
 src/lib-master/master-service-haproxy.c            |   8 +--
 src/lib-master/master-service.h                    |   4 +-
 src/lib-master/service-settings.h                  |   4 +-
 src/lib-settings/settings-parser.c                 |  26 ++++++++++++
 src/lib-settings/settings-parser.h                 |   5 ++
 src/lib-sql/driver-mysql.c                         |  11 +++-
 src/lib-storage/index/imapc/imapc-settings.c       |   6 +--
 src/lib-storage/index/imapc/imapc-settings.h       |   4 +-
 src/lib-storage/index/pop3c/pop3c-client.h         |   4 +-
 src/lib-storage/index/pop3c/pop3c-settings.c       |  19 +--------
 src/lib-storage/index/pop3c/pop3c-settings.h       |   4 +-
 src/lib-storage/mail-storage-service.h             |   2 +-
 src/lib/connection.c                               |   2 +-
 src/lib/connection.h                               |   4 +-
 src/lib/fd-close-on-exec.c                         |   2 +-
 src/lib/iostream-rawlog.c                          |   5 +-
 src/lib/net.c                                      |  45 ++++++++++++++-------
 src/lib/net.h                                      |  21 +++++----
 src/lib/uri-util.c                                 |  30 ++++++-------
 src/lmtp/client.h                                  |   2 +-
 src/lmtp/commands.c                                |  11 +++-
 src/lmtp/lmtp-proxy.h                              |   4 +-
 src/login-common/client-common-auth.c              |   9 ++-
 src/login-common/client-common.h                   |   6 +-
 src/login-common/login-common.h                    |   5 +-
 src/login-common/login-proxy-state.c               |   2 +-
 src/login-common/login-proxy-state.h               |   4 +-
 src/login-common/login-proxy.c                     |   8 +-
 src/login-common/login-proxy.h                     |   6 +-
 src/master/master-settings.c                       |   4 +-
 src/master/service-listen.c                        |  10 ++-
 src/master/service.c                               |  14 +-----
 src/pop3-login/client.c                            |   5 +-
 src/replication/aggregator/aggregator-settings.c   |   2 +-
 src/replication/aggregator/aggregator-settings.h   |   2 +-
 src/replication/aggregator/replicator-connection.c |   5 +-
 src/replication/aggregator/replicator-connection.h |   2 +-
 85 files changed, 310 insertions(+), 249 deletions(-)

diffs (truncated from 2165 to 300 lines):

diff -r f7c1c1dac689 -r aabfe48db1cf src/auth/auth-request.c
--- a/src/auth/auth-request.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/auth/auth-request.c	Sat Aug 29 14:26:30 2015 +0300
@@ -276,11 +276,11 @@
 		if (request->real_remote_ip.family == 0)
 			request->real_remote_ip = request->remote_ip;
 	} else if (strcmp(key, "lport") == 0) {
-		request->local_port = atoi(value);
+		(void)net_str2port(value, &request->local_port);
 		if (request->real_local_port == 0)
 			request->real_local_port = request->local_port;
 	} else if (strcmp(key, "rport") == 0) {
-		request->remote_port = atoi(value);
+		(void)net_str2port(value, &request->remote_port);
 		if (request->real_remote_port == 0)
 			request->real_remote_port = request->remote_port;
 	}
@@ -289,9 +289,9 @@
 	else if (strcmp(key, "real_rip") == 0)
 		(void)net_addr2ip(value, &request->real_remote_ip);
 	else if (strcmp(key, "real_lport") == 0)
-		request->real_local_port = atoi(value);
+		(void)net_str2port(value, &request->real_local_port);
 	else if (strcmp(key, "real_rport") == 0)
-		request->real_remote_port = atoi(value);
+		(void)net_str2port(value, &request->real_remote_port);
 	else if (strcmp(key, "session") == 0)
 		request->session_id = p_strdup(request->pool, value);
 	else
diff -r f7c1c1dac689 -r aabfe48db1cf src/auth/auth-request.h
--- a/src/auth/auth-request.h	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/auth/auth-request.h	Sat Aug 29 14:26:30 2015 +0300
@@ -73,7 +73,7 @@
 
 	const char *service, *mech_name, *session_id;
 	struct ip_addr local_ip, remote_ip, real_local_ip, real_remote_ip;
-	unsigned int local_port, remote_port, real_local_port, real_remote_port;
+	in_port_t local_port, remote_port, real_local_port, real_remote_port;
 
 	struct timeout *to_abort, *to_penalty;
 	unsigned int last_penalty;
diff -r f7c1c1dac689 -r aabfe48db1cf src/auth/passdb-imap.c
--- a/src/auth/passdb-imap.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/auth/passdb-imap.c	Sat Aug 29 14:26:30 2015 +0300
@@ -133,8 +133,7 @@
 		if (strcmp(key, "host") == 0)
 			module->set.host = value;
 		else if (strcmp(key, "port") == 0) {
-			if (str_to_uint(value, &module->set.port) < 0 ||
-			    module->set.port == 0 || module->set.port > 65535)
+			if (net_str2port(value, &module->set.port) < 0)
 				i_fatal("passdb imap: Invalid port: %s", value);
 			port_set = TRUE;
 		} else if (strcmp(key, "username") == 0)
diff -r f7c1c1dac689 -r aabfe48db1cf src/config/config-request.c
--- a/src/config/config-request.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/config/config-request.c	Sat Aug 29 14:26:30 2015 +0300
@@ -116,6 +116,13 @@
 		}
 		break;
 	}
+	case SET_IN_PORT: {
+		const in_port_t *val = value, *dval = default_value;
+
+		if (dump_default || dval == NULL || *val != *dval)
+			str_printfa(str, "%u", *val);
+		break;
+	}
 	case SET_STR_VARS: {
 		const char *const *val = value, *sval;
 		const char *const *_dval = default_value;
@@ -245,6 +252,7 @@
 		case SET_UINT:
 		case SET_UINT_OCT:
 		case SET_TIME:
+		case SET_IN_PORT:
 		case SET_STR_VARS:
 		case SET_STR:
 		case SET_ENUM:
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-connection.c
--- a/src/director/director-connection.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-connection.c	Sat Aug 29 14:26:30 2015 +0300
@@ -345,7 +345,7 @@
 static bool
 director_args_parse_ip_port(struct director_connection *conn,
 			    const char *const *args,
-			    struct ip_addr *ip_r, unsigned int *port_r)
+			    struct ip_addr *ip_r, in_port_t *port_r)
 {
 	if (args[0] == NULL || args[1] == NULL) {
 		director_cmd_error(conn, "Missing IP+port parameters");
@@ -355,7 +355,7 @@
 		director_cmd_error(conn, "Invalid IP address: %s", args[0]);
 		return FALSE;
 	}
-	if (str_to_uint(args[1], port_r) < 0) {
+	if (net_str2port(args[1], port_r) < 0) {
 		director_cmd_error(conn, "Invalid port: %s", args[1]);
 		return FALSE;
 	}
@@ -368,7 +368,7 @@
 	struct director *dir = conn->dir;
 	const char *connect_str;
 	struct ip_addr ip;
-	unsigned int port;
+	in_port_t port;
 	time_t next_comm_attempt;
 
 	if (!director_args_parse_ip_port(conn, args, &ip, &port))
@@ -650,7 +650,7 @@
 {
 	struct director_host *host;
 	struct ip_addr ip;
-	unsigned int port;
+	in_port_t port;
 
 	if (!director_args_parse_ip_port(conn, args, &ip, &port))
 		return FALSE;
@@ -699,7 +699,7 @@
 {
 	struct director_host *host;
 	struct ip_addr ip;
-	unsigned int port;
+	in_port_t port;
 
 	if (!director_args_parse_ip_port(conn, args, &ip, &port))
 		return FALSE;
@@ -746,12 +746,13 @@
 {
 	const char *const *args = *_args;
 	struct ip_addr ip;
-	unsigned int port, seq;
+	in_port_t port;
+	unsigned int seq;
 	struct director_host *host;
 
 	if (str_array_length(args) < 3 ||
 	    net_addr2ip(args[0], &ip) < 0 ||
-	    str_to_uint(args[1], &port) < 0 ||
+	    net_str2port(args[1], &port) < 0 ||
 	    str_to_uint(args[2], &seq) < 0) {
 		director_cmd_error(conn, "Invalid parameters");
 		return -1;
@@ -1295,7 +1296,8 @@
 	struct director *dir = conn->dir;
 	struct director_host *host;
 	struct ip_addr ip;
-	unsigned int port, seq, minor_version = 0, timestamp = ioloop_time;
+	in_port_t port;
+	unsigned int seq, minor_version = 0, timestamp = ioloop_time;
 
 	if (str_array_length(args) < 3 ||
 	    !director_args_parse_ip_port(conn, args, &ip, &port) ||
@@ -1332,7 +1334,7 @@
 	struct director *dir = conn->dir;
 	struct director_host *host;
 	struct ip_addr ip;
-	unsigned int port;
+	in_port_t port;
 
 	if (str_array_length(args) != 2 ||
 	    !director_args_parse_ip_port(conn, args, &ip, &port)) {
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-host.c
--- a/src/director/director-host.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-host.c	Sat Aug 29 14:26:30 2015 +0300
@@ -24,7 +24,7 @@
 
 struct director_host *
 director_host_add(struct director *dir,
-		  const struct ip_addr *ip, unsigned int port)
+		  const struct ip_addr *ip, in_port_t port)
 {
 	struct director_host *host;
 
@@ -90,7 +90,7 @@
 
 struct director_host *
 director_host_get(struct director *dir, const struct ip_addr *ip,
-		  unsigned int port)
+		  in_port_t port)
 {
 	struct director_host *host;
 
@@ -102,7 +102,7 @@
 
 struct director_host *
 director_host_lookup(struct director *dir, const struct ip_addr *ip,
-		     unsigned int port)
+		     in_port_t port)
 {
 	struct director_host *const *hostp;
 
@@ -150,12 +150,13 @@
 static void director_host_add_string(struct director *dir, const char *host)
 {
 	struct ip_addr *ips;
-	unsigned int i, port, ips_count;
+	in_port_t port;
+	unsigned int i, ips_count;
 	const char *p;
 
 	p = strrchr(host, ':');
 	if (p != NULL) {
-		if (str_to_uint(p + 1, &port) < 0 || port == 0 || port > 65535)
+		if (net_str2port(p + 1, &port) < 0)
 			i_fatal("Invalid director port in %s", host);
 		host = t_strdup_until(host, p);
 	} else {
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-host.h
--- a/src/director/director-host.h	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-host.h	Sat Aug 29 14:26:30 2015 +0300
@@ -10,7 +10,7 @@
 	int refcount;
 
 	struct ip_addr ip;
-	unsigned int port;
+	in_port_t port;
 
 	/* name contains "ip:port" */
 	char *name;
@@ -33,7 +33,7 @@
 
 struct director_host *
 director_host_add(struct director *dir, const struct ip_addr *ip,
-		  unsigned int port);
+		  in_port_t port);
 void director_host_free(struct director_host **host);
 
 void director_host_ref(struct director_host *host);
@@ -43,10 +43,10 @@
 
 struct director_host *
 director_host_get(struct director *dir, const struct ip_addr *ip,
-		  unsigned int port);
+		  in_port_t port);
 struct director_host *
 director_host_lookup(struct director *dir, const struct ip_addr *ip,
-		     unsigned int port);
+		     in_port_t port);
 struct director_host *
 director_host_lookup_ip(struct director *dir, const struct ip_addr *ip);
 
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-settings.c
--- a/src/director/director-settings.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-settings.c	Sat Aug 29 14:26:30 2015 +0300
@@ -72,7 +72,7 @@
 	DEF(SET_STR, director_mail_servers),
 	DEF(SET_STR, director_username_hash),
 	DEF(SET_TIME, director_user_expire),
-	DEF(SET_UINT, director_doveadm_port),
+	DEF(SET_IN_PORT, director_doveadm_port),
 	DEF(SET_BOOL, director_consistent_hashing),
 
 	SETTING_DEFINE_LIST_END
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-settings.h
--- a/src/director/director-settings.h	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-settings.h	Sat Aug 29 14:26:30 2015 +0300
@@ -1,6 +1,8 @@
 #ifndef DIRECTOR_SETTINGS_H
 #define DIRECTOR_SETTINGS_H
 
+#include "net.h"
+
 struct director_settings {
 	const char *master_user_separator;
 
@@ -8,7 +10,7 @@
 	const char *director_mail_servers;
 	const char *director_username_hash;
 	unsigned int director_user_expire;
-	unsigned int director_doveadm_port;
+	in_port_t director_doveadm_port;
 	bool director_consistent_hashing;
 };
 
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director-test.c
--- a/src/director/director-test.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director-test.c	Sat Aug 29 14:26:30 2015 +0300
@@ -388,7 +388,7 @@
 static void client_connected(struct master_service_connection *conn)
 {
 	struct ip_addr local_ip, remote_ip;
-	unsigned int local_port;
+	in_port_t local_port;
 
 	if (net_getsockname(conn->fd, &local_ip, &local_port) < 0)
 		i_fatal("net_getsockname() failed: %m");
diff -r f7c1c1dac689 -r aabfe48db1cf src/director/director.c
--- a/src/director/director.c	Sat Aug 29 14:21:27 2015 +0300
+++ b/src/director/director.c	Sat Aug 29 14:26:30 2015 +0300
@@ -103,7 +103,7 @@
 
 int director_connect_host(struct director *dir, struct director_host *host)
 {
-	unsigned int port;
+	in_port_t port;
 	int fd;
 
 	if (director_has_outgoing_connection(dir, host))
@@ -928,7 +928,7 @@


More information about the dovecot-cvs mailing list