From: "Ara.T.Howard" Date: 2005-11-04T01:36:56+09:00 Subject: http-access2 help i'm trying to convert some scripts i have which login in to rubyforge, cache the login cookie, and allow automatic upload of a new release. they are working fine attm but they make systems calls to use curl and i'm trying to port the http-access2 so they might be used on windows too. i'm having an issue following status 302, as it returned by the login page. here is the script: [ahoward@localhost rubyforge-0.0.0]$ cat login2 #! /usr/bin/env ruby $VERBOSE = nil require "getoptlong" require "enumerator" require "http-access2" require "tempfile" uri, page = "http://rubyforge.org", "/account/login.php" opts = GetoptLong::new( [ "--username", "-u", GetoptLong::REQUIRED_ARGUMENT ], [ "--password", "-p", GetoptLong::REQUIRED_ARGUMENT ], [ "--cookie_jar", "-c", GetoptLong::REQUIRED_ARGUMENT ] ).enum_for.inject({}){|h,kv| h.update Hash[*kv]} username = opts['username'] || ARGV.shift or abort 'no username' password = opts['password'] || ARGV.shift or abort 'no password' cookie_jar = opts['cookie_jar'] || ARGV.shift || Tempfile::new($0).path form = { 'return_to' => '', 'form_loginname' => username, 'form_pw' => password, 'login' => 'Login' } client = HTTPAccess2::Client::new ENV['HTTP_PROXY'] client.set_cookie_store cookie_jar response = unless ENV['BLOW_UP'] client.post "#{ uri }/#{ page }", form else client.debug_dev = STDERR client.post_content "#{ uri }/#{ page }", form end client.save_cookie_store p response __END__

Login Name:

Password:

now, if i run using [ahoward@localhost rubyforge-0.0.0]$ ./login2 xxx yyy cookie_jar #, @body=#> the login works - the cookie is returned. however, the login page is supposed to bounce you back to http://rubyforge.org/my/, as you can see by the 302 (FOUND) status code and the ["Location", "/my/"] header. i figured i could use post_content to follow this, at least the source seems to read this way... so i tried: [ahoward@localhost rubyforge-0.0.0]$ BLOW_UP=true ./login2 xxx yyy = Request ! CONNECT TO rubyforge.org:80 ! CONNECTION ESTABLISHED POST //account/login.php HTTP/1.1 content-type: application/x-www-form-urlencoded Date: Thu Nov 03 09:33:41 MST 2005 Content-Length: 64 Host: rubyforge.org form_pw=yyy&form_loginname=xxx&return_to=&login=Login = Response HTTP/1.1 302 Found Date: Thu, 03 Nov 2005 16:24:48 GMT Server: Apache/1.3.33 (Unix) mod_gzip/1.3.26.1a PHP/4.4.1 Vary: Accept-Encoding X-Powered-By: PHP/4.4.1 Expires: Wed, 11 Nov 1998 11:11:11 GMT Cache-Control: must-revalidate Set-Cookie: session_ser=abcxyz; expires=Thursday, 10-Nov-05 16:24:48 GMT; path=/; domain=.rubyforge.org Location: /my/ Transfer-Encoding: chunked Content-Type: text/html 0 = Request ! CONNECT TO :0 /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1109:in `initialize': Connection refused - connect(2) (, #0) (Errno::ECONNREFUSED) from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1109:in `initialize' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:76:in `new' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:76:in `new' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1099:in `create_socket' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1389:in `create_socket' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1352:in `connect' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1351:in `timeout' from /usr/local/lib/ruby/1.8/timeout.rb:62:in `timeout' ... 7 levels... from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:245:in `post_content' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:244:in `retry_connect' from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:244:in `post_content' from ./login2:36 but no go. it looks like it drops the host on the redirect an tries to connect to localhost or something... am i doing something wrong or is this a bug? kind regards. -a -- =============================================================================== | email :: ara [dot] t [dot] howard [at] noaa [dot] gov | phone :: 303.497.6469 | anything that contradicts experience and logic should be abandoned. | -- h.h. the 14th dalai lama ===============================================================================