diff options
author | Grygoriy Fuchedzhy (gry) <grygoriy.fuchedzhy@gmail.com> | 2009-08-26 00:49:43 +0000 |
---|---|---|
committer | Grygoriy Fuchedzhy (gry) <grygoriy.fuchedzhy@gmail.com> | 2009-08-26 00:49:43 +0000 |
commit | 0b641af92df99055b95d8507dc92a0bef63ed53e (patch) | |
tree | 3a5d09fb92d05dae06684066327395b926e0a8dc /net-mail/checkgmail/files | |
parent | Automatic update to use.local.desc (diff) | |
download | sunrise-0b641af92df99055b95d8507dc92a0bef63ed53e.tar.gz sunrise-0b641af92df99055b95d8507dc92a0bef63ed53e.tar.bz2 sunrise-0b641af92df99055b95d8507dc92a0bef63ed53e.zip |
net-mail/checkgmail: Fixed login procedure for checkgmail-1.13
svn path=/sunrise/; revision=9119
Diffstat (limited to 'net-mail/checkgmail/files')
-rw-r--r-- | net-mail/checkgmail/files/gmail-login-procedure-fix.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/net-mail/checkgmail/files/gmail-login-procedure-fix.patch b/net-mail/checkgmail/files/gmail-login-procedure-fix.patch new file mode 100644 index 000000000..e1ef97892 --- /dev/null +++ b/net-mail/checkgmail/files/gmail-login-procedure-fix.patch @@ -0,0 +1,47 @@ +diff -dupr checkgmail-1.13.orig/checkgmail checkgmail-1.13/checkgmail +--- checkgmail-1.13.orig/checkgmail 2009-08-25 23:48:18.615575505 +0200 ++++ checkgmail-1.13/checkgmail 2009-08-26 00:13:05.535569237 +0200 +@@ -682,6 +682,7 @@ sub http_check { + + # set up the useragent .... + $ua = LWP::UserAgent->new(); ++ $ua->requests_redirectable (['GET', 'HEAD', 'POST']); + + # set time-out - defaults to 90 seconds or $delay, whichever is shorter + $ua->timeout($delay/1000<90 ? $delay/1000 : 90); +@@ -716,14 +717,21 @@ sub http_check { + unless ($hosted) { + # Normal Gmail login action ... + $error = http_get("https://www.google.com/accounts/ServiceLoginAuth?ltmpl=yj_wsad<mplcache=2&continue=https%3A%2F%2Fmail.google.com%2Fmail%3F&service=mail&rm=false<mpl=yj_wsad&Email=$URI_user&Passwd=$URI_passwd&rmShown=1&null=Sign+in", "LOGIN"); +- # $cookie_jar->scan(\&scan_at); ++ ++ $cookie_jar->scan(\&scan_at); ++ unless ($error || !$gmail_sid || !$gmail_gausr) { ++ $error = http_get("https://mail.google.com/mail/?pli=1&auth=$gmail_sid&gausr=$gmail_gausr", 'LOGIN'); ++ } ++ + # $error = http_get("https://mail.google.com/mail?nsr=0&auth=$gmail_sid&gausr=$gmail_gausr", "LOGIN"); + + } else { + # hosted domains work differently ... + # First we POST a login +- $error = http_get("https://www.google.com/a/$hosted/LoginAction|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&userName=$URI_user&password=$URI_passwd", "POST"); +- ++ # $error = http_get("https://www.google.com/a/$hosted/LoginAction|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&userName=$URI_user&password=$URI_passwd", "POST"); ++ # thanks to Olinto Neto for this fix for hosted domains: ++ $error = http_get("https://www.google.com/a/$hosted/LoginAction2|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&Email=$URI_user&Passwd=$URI_passwd", "POST"); ++ + # Then we grab the HID ("Hosted ID"?) cookie + $cookie_jar->scan(\&scan_at); + +@@ -840,8 +848,10 @@ sub http_get { + if ($http =~ m/location\.replace\("(.*)"\)/) { + my $new_addr = $1; + $new_addr =~ s/\\u003d/=/g; ++ $new_addr =~ s/\\x3d/=/g; + $new_addr =~ s/\\075/=/g; + $new_addr =~ s/\\46/&/g; ++ $new_addr =~ s/\\x26/&/g; + $new_addr =~ s/\\75/=/g; + return unless $new_addr =~ m/^http/i; + |