Skip to content
This repository has been archived by the owner on Jan 24, 2022. It is now read-only.

Fix timeout exception #146

Merged
merged 3 commits into from
Sep 1, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/ssh_scan.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#External Deps
require 'bindata'
require 'timeout'
require 'resolv'

#Internal Deps
require 'ssh_scan/version'
Expand Down
36 changes: 25 additions & 11 deletions lib/string_ext.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
require 'ipaddr'
require 'resolv'
require 'timeout'

# Extend string to include some helpful stuff
class String
Expand All @@ -23,20 +24,33 @@ def ip_addr?
return true
end

def resolve_fqdn_as_ipv6
Resolv::DNS.open do |dns|
ress = dns.getresources self, Resolv::DNS::Resource::IN::AAAA
temp = ress.map { |r| r.address }
return temp[0]
def resolve_fqdn_as_ipv6(timeout = 3)
begin
Timeout::timeout(timeout) {
Resolv::DNS.open do |dns|
ress = dns.getresources self, Resolv::DNS::Resource::IN::AAAA
temp = ress.map { |r| r.address }
return temp[0]
end
}
rescue Timeout::Error
return ""
end
end

def resolve_fqdn_as_ipv4
Resolv::DNS.open do |dns|
ress = dns.getresources self, Resolv::DNS::Resource::IN::A
temp = ress.map { |r| r.address }
return temp[0]
def resolve_fqdn_as_ipv4(timeout = 3)
begin
Timeout::timeout(timeout) {
Resolv::DNS.open do |dns|
ress = dns.getresources self, Resolv::DNS::Resource::IN::A
temp = ress.map { |r| r.address }
return temp[0]
end
}
rescue Timeout::Error
return ""
end

end

def resolve_fqdn
Expand All @@ -46,7 +60,7 @@ def resolve_fqdn
def fqdn?
begin
resolve_fqdn
rescue SocketError
rescue SocketError, Timeout::Error
return false
end

Expand Down
3 changes: 0 additions & 3 deletions ssh_scan.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ Gem::Specification.new do |s|
s.homepage = 'http://rubygems.org/gems/ssh_scan'

s.add_dependency('bindata', '~> 2.0')
s.add_dependency('net-ssh')
s.add_dependency('netaddr')
s.add_dependency('timeout')
s.add_dependency('json')
s.add_development_dependency('pry')
s.add_development_dependency('rspec', '~> 3.0')
s.add_development_dependency('rspec-its', '~> 1.2')
Expand Down