|
|
| |
static const QString | static const QString |
gGMailLoginURL = "https://www.google.com/accounts/ServiceLoginBoxAuth", | gGMailLoginURL = "https://www.google.com/accounts/ServiceLoginBoxAuth", |
gGMailLoginPostFormat = "Email=%s&Passwd=%s&null=Sign%%20in&service=mail" |
gGMailLoginPostFormat = "Email=%s&Passwd=%s&null=Sign%%20in", |
"&continue=https://gmail.google.com/gmail", |
|
| |
gGMailCheckURL = "%s://gmail.google.com/gmail?search=inbox" | gGMailCheckURL = "%s://gmail.google.com/gmail?search=inbox" |
"&as_subset=unread&view=tl&start=0", | "&as_subset=unread&view=tl&start=0", |
|
|
{ | { |
delete mCheckLock; | delete mCheckLock; |
delete mLoginLock; | delete mLoginLock; |
if(mLoginToken) { |
if(mLoginToken) |
delete mLoginToken; |
|
mLoginToken = 0; | mLoginToken = 0; |
} |
|
delete mCookieMap; | delete mCookieMap; |
} | } |
| |
|
|
| |
if(mLoginLock->tryLock()) { | if(mLoginLock->tryLock()) { |
if(mLoginToken) | if(mLoginToken) |
delete mLoginToken; |
mLoginToken = 0; |
mLoginToken = 0; |
|
mLoginLock->unlock(); | mLoginLock->unlock(); |
mLoginFromTimer = false; | mLoginFromTimer = false; |
login(); | login(); |
|
|
| |
mCookieMap->clear(); | mCookieMap->clear(); |
| |
QString cookie; |
|
long int t = time(NULL); |
|
cookie.sprintf("T%ld/%ld/%ld", t - 2, t - 1, t); |
|
|
|
parseCookies("Set-Cookie: GMAIL_LOGIN="+cookie+";"); |
|
|
|
kdDebug() << k_funcinfo << "Waiting for wallet..." << endl; | kdDebug() << k_funcinfo << "Waiting for wallet..." << endl; |
// this will call back to gotWalletPassword(). | // this will call back to gotWalletPassword(). |
// we will continue the process from there. | // we will continue the process from there. |
|
|
} else { | } else { |
QCString str(data, data.size() + 1); | QCString str(data, data.size() + 1); |
parseCookies(job->queryMetaData("setcookies")); | parseCookies(job->queryMetaData("setcookies")); |
QRegExp rx("auth%3[Dd](.*)&service=mail"); |
// auth cookie no longer exists, no need to check for it |
if(rx.search(str) >= 0) { |
mLoginToken = 1; |
if(mLoginToken) |
|
delete mLoginToken; |
|
mLoginToken = new QString(rx.cap(1)); |
|
} |
|
} | } |
} | } |
| |
|
|
url.sprintf(gGMailPostLoginURLFormat.ascii(), | url.sprintf(gGMailPostLoginURLFormat.ascii(), |
(Prefs::useHTTPS() | (Prefs::useHTTPS() |
? "https" | ? "https" |
: "http" ), |
: "http" )); |
mLoginToken->ascii()); |
|
| |
KIO::TransferJob *job = KIO::get(url, true, false); | KIO::TransferJob *job = KIO::get(url, true, false); |
job->addMetaData("cookies", "manual"); | job->addMetaData("cookies", "manual"); |