X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fwserver.rb;h=b9260170b4997d4d71352145983ce0279cc29b07;hb=fc0c682cbf7a68b8ccd458ac776770fccf9e59f4;hp=1baa0d90c9a9504f05c8f098dfd37a2f9dc7b1e5;hpb=10880d600dd3ae7acf3144ef1ab0c9bd329492e2;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/wserver.rb b/data/rbot/plugins/wserver.rb index 1baa0d90..b9260170 100644 --- a/data/rbot/plugins/wserver.rb +++ b/data/rbot/plugins/wserver.rb @@ -1,7 +1,3 @@ -require 'net/http' -require 'uri' -Net::HTTP.version_1_2 - class WserverPlugin < Plugin def help(plugin, topic="") "wserver => try and determine what webserver is using" @@ -16,43 +12,39 @@ class WserverPlugin < Plugin m.reply "cowardly refusing to follow more than 3 redirects" return end - + begin uri = URI.parse(hostname) rescue URI::InvalidURIError => err m.reply "#{hostname} is not a valid URI" return end - + unless(uri) m.reply "incorrect usage: " + help(m.plugin) return end - - http = @bot.httputil.get_proxy(uri) - http.open_timeout = 5 - - http.start {|http| - resp = http.head('/') - server = resp['Server'] - if(server && server.length > 0) - m.reply "#{uri.host} is running #{server}" - else - m.reply "couldn't tell what #{uri.host} is running" - end - - if(resp.code == "302" || resp.code == "301") - newloc = resp['location'] - newuri = URI.parse(newloc) - # detect and ignore incorrect redirects (to relative paths etc) - if (newuri.host != nil) - if(uri.host != newuri.host) - m.reply "#{uri.host} redirects to #{newuri.scheme}://#{newuri.host}" - raise resp['location'] - end + + + resp = @bot.httputil.head(uri) + server = resp['Server'] + if(server && server.length > 0) + m.reply "#{uri.host} is running #{server}" + else + m.reply "couldn't tell what #{uri.host} is running" + end + + if(resp.code == "302" || resp.code == "301") + newloc = resp['location'] + newuri = URI.parse(newloc) + # detect and ignore incorrect redirects (to relative paths etc) + if (newuri.host != nil) + if(uri.host != newuri.host) + m.reply "#{uri.host} redirects to #{newuri.scheme}://#{newuri.host}" + raise resp['location'] end end - } + end rescue TimeoutError => err m.reply "timed out connecting to #{uri.host}:#{uri.port} :(" return