#! /usr/bin/ruby
require 'yaml'

if `wget www.google.com -O - 2> /dev/null`[/<title>google/i] then
  puts "Already authenticated or authentication not needed"
  exit 0
end

passwd = YAML.load(File.read('byuwireless.passwd'))

page1=`wget www.google.com -O - 2> /dev/null | grep -o 'https://connect[^?]*' | head -n 1`
$login=`wget #{page1.chomp} -O - 2> /dev/null`

# this handles all the different authentication pages for different
# sites on campus (connect1, connect2, etc)

authpage = page1[/(https:..connect[^"']*\/).*/,1] + "perfigo_validate.jsp"

def value(x)
  reg = eval "/name=.#{x}[^>]*value=.([^\"\']*)/"
  $login[reg,1]
end

def post(x)
  "#{x}=#{value x}"
end

vars = ['reqFrom','userip','os','index','vlan','provider','login_submit']

post_string = [vars.map{|x| post x},
  "username=#{passwd['username']}&password=#{passwd['password']}"].join('&')
puts 'SUCCESS' if `wget --post-data="#{post_string}" "#{authpage}" -O - 2> /dev/null`[/<title>google/i]
