Merge pull request #6480 from jbroadus/gpodder-timeout
Add timeouts for gpodder requests.
This commit is contained in:
commit
922e10bc48
@ -84,7 +84,12 @@ void ThreadSafeNetworkDiskCache::clear() {
|
||||
}
|
||||
|
||||
NetworkAccessManager::NetworkAccessManager(QObject* parent)
|
||||
: QNetworkAccessManager(parent) {
|
||||
: QNetworkAccessManager(parent), timeout_msec_(0) {
|
||||
setCache(new ThreadSafeNetworkDiskCache(this));
|
||||
}
|
||||
|
||||
NetworkAccessManager::NetworkAccessManager(int timeout, QObject* parent)
|
||||
: QNetworkAccessManager(parent), timeout_msec_(timeout) {
|
||||
setCache(new ThreadSafeNetworkDiskCache(this));
|
||||
}
|
||||
|
||||
@ -117,7 +122,15 @@ QNetworkReply* NetworkAccessManager::createRequest(
|
||||
QNetworkRequest::PreferCache);
|
||||
}
|
||||
|
||||
return QNetworkAccessManager::createRequest(op, new_request, outgoingData);
|
||||
QNetworkReply* reply =
|
||||
QNetworkAccessManager::createRequest(op, new_request, outgoingData);
|
||||
if (timeout_msec_ > 0) {
|
||||
// Since the parent is the reply, this object will be destroyed when the
|
||||
// reply is destroyed.
|
||||
NetworkTimeouts* timeout = new NetworkTimeouts(timeout_msec_, reply);
|
||||
timeout->AddReply(reply);
|
||||
}
|
||||
return reply;
|
||||
}
|
||||
|
||||
NetworkTimeouts::NetworkTimeouts(int timeout_msec, QObject* parent)
|
||||
|
@ -51,10 +51,12 @@ class NetworkAccessManager : public QNetworkAccessManager {
|
||||
|
||||
public:
|
||||
explicit NetworkAccessManager(QObject* parent = nullptr);
|
||||
explicit NetworkAccessManager(int timeout, QObject* parent = nullptr);
|
||||
|
||||
protected:
|
||||
QNetworkReply* createRequest(Operation op, const QNetworkRequest& request,
|
||||
QIODevice* outgoingData);
|
||||
int timeout_msec_;
|
||||
};
|
||||
|
||||
class RedirectFollower : public QObject {
|
||||
|
@ -38,11 +38,12 @@ const char* GPodderSync::kSettingsGroup = "Podcasts";
|
||||
const int GPodderSync::kFlushUpdateQueueDelay = 30 * kMsecPerSec; // 30 seconds
|
||||
const int GPodderSync::kGetUpdatesInterval =
|
||||
30 * 60 * kMsecPerSec; // 30 minutes
|
||||
const int GPodderSync::kRequestTimeout = 30 * kMsecPerSec; // 30 seconds
|
||||
|
||||
GPodderSync::GPodderSync(Application* app, QObject* parent)
|
||||
: QObject(parent),
|
||||
app_(app),
|
||||
network_(new NetworkAccessManager(this)),
|
||||
network_(new NetworkAccessManager(kRequestTimeout, this)),
|
||||
backend_(app_->podcast_backend()),
|
||||
loader_(new PodcastUrlLoader(this)),
|
||||
get_updates_timer_(new QTimer(this)),
|
||||
|
@ -51,6 +51,7 @@ class GPodderSync : public QObject {
|
||||
static const char* kSettingsGroup;
|
||||
static const int kFlushUpdateQueueDelay;
|
||||
static const int kGetUpdatesInterval;
|
||||
static const int kRequestTimeout;
|
||||
|
||||
static QString DefaultDeviceName();
|
||||
static QString DeviceId();
|
||||
|
Loading…
x
Reference in New Issue
Block a user