BUG/MINOR: config: don't over-count the global maxsock value

global.maxsock used to be augmented by the frontend's maxconn value
for each frontend listener, which is absurd when there are many
listeners in a frontend because the frontend's maxconn fixes an
upper limit to how many connections will be accepted on all of its
listeners anyway. What is needed instead is to add one to count the
listening socket.

In addition, the CLI's and peers' value was incremented twice, the
first time when creating the listener and the second time in the
main init code.

Let's now make sure we only increment global.maxsock by the required
amount of sockets. This means not adding maxconn for each listener,
and relying on the global values when they are correct.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index bf737c6..21b9af5 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -655,7 +655,7 @@
 			l->analysers |=  curpeers->peers_fe->fe_req_ana;
 			l->default_target = curpeers->peers_fe->default_target;
 			l->options |= LI_O_UNLIMITED; /* don't make the peers subject to global limits */
-			global.maxsock += l->maxconn;
+			global.maxsock++; /* for the listening socket */
 
 			bind_line = 1;
 			if (cfg_peers->local) {
@@ -859,7 +859,7 @@
 		l->analysers |=  curpeers->peers_fe->fe_req_ana;
 		l->default_target = curpeers->peers_fe->default_target;
 		l->options |= LI_O_UNLIMITED; /* don't make the peers subject to global limits */
-		global.maxsock += l->maxconn;
+		global.maxsock++; /* for the listening socket */
 	} /* neither "peer" nor "peers" */
 	else if (!strcmp(args[0], "disabled")) {  /* disables this peers section */
 		curpeers->state = PR_STSTOPPED;
diff --git a/src/cli.c b/src/cli.c
index ae5e4e8..0cace77 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -303,7 +303,7 @@
 			l->default_target = global.stats_fe->default_target;
 			l->options |= LI_O_UNLIMITED; /* don't make the peers subject to global limits */
 			l->nice = -64;  /* we want to boost priority for local stats */
-			global.maxsock += l->maxconn;
+			global.maxsock++; /* for the listening socket */
 		}
 	}
 	else if (!strcmp(args[1], "timeout")) {
@@ -2528,8 +2528,9 @@
 		/* don't make the peers subject to global limits and don't close it in the master */
 		l->options |= (LI_O_UNLIMITED|LI_O_MWORKER); /* we are keeping this FD in the master */
 		l->nice = -64;  /* we want to boost priority for local stats */
-		global.maxsock += l->maxconn;
+		global.maxsock++; /* for the listening socket */
 	}
+	global.maxsock += mworker_proxy->maxconn;
 
 	return 0;
 
@@ -2598,7 +2599,7 @@
 		/* it's a sockpair but we don't want to keep the fd in the master */
 		l->options &= ~LI_O_INHERITED;
 		l->nice = -64;  /* we want to boost priority for local stats */
-		global.maxsock += l->maxconn;
+		global.maxsock++; /* for the listening socket */
 	}
 
 	return 0;