From f17ea36ca3d992876b58395bb9d90645b40753c2 Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Sun, 13 Sep 2015 16:24:18 +0000 Subject: [PATCH] Rescue DNS server port unavailable - Fix #1166 --- extensions/dns/dns.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/extensions/dns/dns.rb b/extensions/dns/dns.rb index 0f8100572..f05944b06 100644 --- a/extensions/dns/dns.rb +++ b/extensions/dns/dns.rb @@ -124,7 +124,18 @@ module BeEF @otherwise = Proc.new { |t| t.passthrough!(resolver) } end - super(:listen => listen) + begin + super(:listen => listen) + rescue RuntimeError => e + if e.message =~ /no datagram socket/ || e.message =~ /no acceptor/ # the port is in use + print_error "[DNS] Another process is already listening on port #{options[:listen]}" + print_error "Exiting..." + exit 127 + else + raise + end + end + end end end