[BUG] proxy: peers must only be stopped once, not upon every call to maintain_proxies

Peers were stopped on every call to maintain_proxies when stopping=1,
while they should only be stopped once upon call to soft_stop(). This
bug has little impact, mostly increased CPU usage. It's not needed to
backport it.
diff --git a/src/proxy.c b/src/proxy.c
index bd639fa..17063a6 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -518,8 +518,6 @@
 	}
 
 	if (stopping) {
-		struct peers *prs;
-
 		p = proxy;
 		while (p) {
 			if (p->state != PR_STSTOPPED) {
@@ -540,13 +538,6 @@
 			}
 			p = p->next;
 		}
-
-		prs = peers;
-		while (prs) {
-			stop_proxy((struct proxy *)prs->peers_fe);
-			prs = prs->next;
-		}
-
 	}
 	return;
 }
@@ -560,6 +551,7 @@
 void soft_stop(void)
 {
 	struct proxy *p;
+	struct peers *prs;
 
 	stopping = 1;
 	p = proxy;
@@ -575,6 +567,12 @@
 
 		p = p->next;
 	}
+
+	prs = peers;
+	while (prs) {
+		stop_proxy((struct proxy *)prs->peers_fe);
+		prs = prs->next;
+	}
 	/* signal zero is used to broadcast the "stopping" event */
 	signal_handler(0);
 }