diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2008-01-20 17:18:58 +0000 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2008-01-20 17:18:58 +0000 |
commit | fb0e836fdc1d6959ffabd7c1ab906bc25f329b2e (patch) | |
tree | e71b30d72201d0f7749252ef437690cf556f9dfb /data | |
parent | 06c101926c74d9fd7a44e37e595dbc6000359757 (diff) |
url plugin: check the canonical name, the IP address, and any known aliases against no_info_hosts
Diffstat (limited to 'data')
-rw-r--r-- | data/rbot/plugins/url.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/data/rbot/plugins/url.rb b/data/rbot/plugins/url.rb index 9cd73736..f44da3eb 100644 --- a/data/rbot/plugins/url.rb +++ b/data/rbot/plugins/url.rb @@ -57,8 +57,19 @@ class UrlPlugin < Plugin url = uri_str.kind_of?(URI) ? uri_str : URI.parse(uri_str) return if url.scheme !~ /https?/ - if url.host =~ @no_info_hosts - return "Sorry, info retrieval for #{url.host} is disabled" + # also check the ip, the canonical name and the aliases + begin + checks = TCPSocket.gethostbyname(url.host) + checks.delete_at(-2) + rescue => e + return "Unable to retrieve info for #{url.host}: #{e.message}" + end + + checks << url.host + checks.flatten! + + unless checks.grep(@no_info_hosts).empty? + return "Sorry, info retrieval for #{url.host} (#{checks.first}) is disabled" end logopts = opts.dup |