From d78980c4c4174c96128075ebd1b7ac5cc8b1f88a Mon Sep 17 00:00:00 2001
From: Nym Seddon <64070857+unseddd@users.noreply.github.com>
Date: Fri, 17 Jul 2020 12:44:43 +0000
Subject: [PATCH] P2P replace DNS panic with map_err (#3383)

Replace panic on DNS resolution error with map_err to bubble
up error to the caller

Co-authored-by: Nym Seddon <unseddd@shh.xyz>
---
 p2p/src/types.rs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/p2p/src/types.rs b/p2p/src/types.rs
index c4b8cbd0f..713ca1929 100644
--- a/p2p/src/types.rs
+++ b/p2p/src/types.rs
@@ -181,9 +181,9 @@ impl<'de> Visitor<'de> for PeerAddrs {
 				Ok(ip) => peers.push(PeerAddr(ip)),
 				// If that fails it's probably a DNS record
 				Err(_) => {
-					let socket_addrs = entry
-						.to_socket_addrs()
-						.unwrap_or_else(|_| panic!("Unable to resolve DNS: {}", entry));
+					let socket_addrs = entry.to_socket_addrs().map_err(|_| {
+						serde::de::Error::custom(format!("Unable to resolve DNS: {}", entry))
+					})?;
 					peers.append(&mut socket_addrs.map(PeerAddr).collect());
 				}
 			}