BUG/MINOR: resolvers: throw log message if trash not large enough for query

Before this patch the sent error counter was increased
for each targeted nameserver as soon as we were unable to build
the query message into the trash buffer. But this counter is here
to count sent errors at dns.c transport layer and this error is not
related to a nameserver.

This patch stops to increase those counters and sent a log message
to signal the trash buffer size is not large enough to build the query.

Note: This case should not happen except if trash size buffer was
customized to a very low value.

The function was also re-worked to return -1 in this error case
as it was specified in comment. This function is currently
called at multiple point in resolver.c but return code
is still not yet handled. So to advert the user of the malfunction
the log message was added.

This patch should be backported on all versions including the
layer split between dns.c and resolver.c (v >= 2.4)

(cherry picked from commit 0161d32df2b602cd1571539cb8890a68518832a3)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/resolvers.c b/src/resolvers.c
index dac24f7..a2103b5 100644
--- a/src/resolvers.c
+++ b/src/resolvers.c
@@ -359,7 +359,7 @@
 }
 
 /* Sends a DNS query to resolvers associated to a resolution. It returns 0 on
- * success, -1 otherwise.
+ * success or -1 if trash buffer is not large enough to build a valid query.
  */
 static int resolv_send_query(struct resolv_resolution *resolution)
 {
@@ -376,13 +376,14 @@
 	                      resolvers->accepted_payload_size,
 	                      resolution->hostname_dn, resolution->hostname_dn_len,
 	                      trash.area, trash.size);
+	if (len < 0) {
+		send_log(NULL, LOG_NOTICE,
+			 "can not build the query message for %s, in resolvers %s.\n",
+			 resolution->hostname_dn, resolvers->id);
+		return -1;
+	}
 
 	list_for_each_entry(ns, &resolvers->nameservers, list) {
-		if (len < 0) {
-			ns->counters->snd_error++;
-			continue;
-		}
-
 		if (dns_send_nameserver(ns, trash.area, len) >= 0)
 			resolution->nb_queries++;
 	}