summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2008-01-20 17:18:58 +0000
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2008-01-20 17:18:58 +0000
commitfb0e836fdc1d6959ffabd7c1ab906bc25f329b2e (patch)
treee71b30d72201d0f7749252ef437690cf556f9dfb /data
parent06c101926c74d9fd7a44e37e595dbc6000359757 (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.rb15
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