File 0195-Fixed-dns-lookup-in-case-of-server-close-connection-.patch of Package erlang

From 53e83c1ee2c7d6a95512162b31f72ea2442a836e Mon Sep 17 00:00:00 2001
From: Kozlov Yakov <yk@exante.eu>
Date: Fri, 1 Sep 2017 11:27:31 +0300
Subject: [PATCH] Fixed dns lookup in case of server close connection with
 econnrefused

---
 lib/kernel/src/inet_res.erl | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/kernel/src/inet_res.erl b/lib/kernel/src/inet_res.erl
index 90e49ddfdf..49aa5f8bda 100644
--- a/lib/kernel/src/inet_res.erl
+++ b/lib/kernel/src/inet_res.erl
@@ -859,15 +859,17 @@ query_ns(S0, Id, Buffer, IP, Port, Timer, Retry, I,
 		{ok,S} ->
 		    Timeout =
 			inet:timeout( (Tm * (1 bsl I)) div Retry, Timer),
-		    {S,
 		     case query_udp(
 			    S, Id, Buffer, IP, Port, Timeout, Verbose) of
 			 {ok,#dns_rec{header=H}} when H#dns_header.tc ->
 			     TcpTimeout = inet:timeout(Tm*5, Timer),
-			     query_tcp(
-			       TcpTimeout, Id, Buffer, IP, Port, Verbose);
-			 Reply -> Reply
-		     end};
+			     {S, query_tcp(
+			       TcpTimeout, Id, Buffer, IP, Port, Verbose)};
+			{error, econnrefused} = Err ->
+                            ok = udp_close(S),
+	                    {#sock{}, Err};
+			Reply -> {S, Reply}
+		     end;
 		Error ->
 		    {S0,Error}
 	    end
-- 
2.14.1

openSUSE Build Service is sponsored by