mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-01-11 09:19:35 +00:00
7d89b54d1c
If we start logging in and we know, that some of the authorization keys were read from the hard drive, not generated, we destroy all the existing authorization keys and start generating new keys.
74 lines
2.0 KiB
C++
74 lines
2.0 KiB
C++
/*
|
|
This file is part of Telegram Desktop,
|
|
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
|
|
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
It is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
In addition, as a special exception, the copyright holders give permission
|
|
to link the code of portions of this program with the OpenSSL library.
|
|
|
|
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
|
|
*/
|
|
#pragma once
|
|
|
|
#include "mtproto/core_types.h"
|
|
#include "mtproto/connection_abstract.h"
|
|
|
|
namespace MTP {
|
|
namespace internal {
|
|
|
|
class HTTPConnection : public AbstractConnection {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
HTTPConnection(QThread *thread);
|
|
|
|
void sendData(mtpBuffer &buffer) override;
|
|
void disconnectFromServer() override;
|
|
void connectTcp(const DcOptions::Endpoint &endpoint) override { // not supported
|
|
}
|
|
void connectHttp(const DcOptions::Endpoint &endpoint) override;
|
|
bool isConnected() const override;
|
|
bool usingHttpWait() override;
|
|
bool needHttpWait() override;
|
|
|
|
int32 debugState() const override;
|
|
|
|
QString transport() const override;
|
|
|
|
static mtpBuffer handleResponse(QNetworkReply *reply);
|
|
static qint32 handleError(QNetworkReply *reply); // returnes error code
|
|
|
|
public slots:
|
|
void requestFinished(QNetworkReply *reply);
|
|
|
|
private:
|
|
enum Status {
|
|
WaitingHttp = 0,
|
|
UsingHttp,
|
|
FinishedWork
|
|
};
|
|
Status status;
|
|
MTPint128 httpNonce;
|
|
MTPDdcOption::Flags _flags;
|
|
|
|
QNetworkAccessManager manager;
|
|
QUrl address;
|
|
|
|
typedef QSet<QNetworkReply*> Requests;
|
|
Requests requests;
|
|
|
|
};
|
|
|
|
} // namespace internal
|
|
} // namespace MTP
|