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)
|
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));
|
setCache(new ThreadSafeNetworkDiskCache(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +122,15 @@ QNetworkReply* NetworkAccessManager::createRequest(
|
|||||||
QNetworkRequest::PreferCache);
|
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)
|
NetworkTimeouts::NetworkTimeouts(int timeout_msec, QObject* parent)
|
||||||
|
@ -51,10 +51,12 @@ class NetworkAccessManager : public QNetworkAccessManager {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit NetworkAccessManager(QObject* parent = nullptr);
|
explicit NetworkAccessManager(QObject* parent = nullptr);
|
||||||
|
explicit NetworkAccessManager(int timeout, QObject* parent = nullptr);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QNetworkReply* createRequest(Operation op, const QNetworkRequest& request,
|
QNetworkReply* createRequest(Operation op, const QNetworkRequest& request,
|
||||||
QIODevice* outgoingData);
|
QIODevice* outgoingData);
|
||||||
|
int timeout_msec_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class RedirectFollower : public QObject {
|
class RedirectFollower : public QObject {
|
||||||
|
@ -38,11 +38,12 @@ const char* GPodderSync::kSettingsGroup = "Podcasts";
|
|||||||
const int GPodderSync::kFlushUpdateQueueDelay = 30 * kMsecPerSec; // 30 seconds
|
const int GPodderSync::kFlushUpdateQueueDelay = 30 * kMsecPerSec; // 30 seconds
|
||||||
const int GPodderSync::kGetUpdatesInterval =
|
const int GPodderSync::kGetUpdatesInterval =
|
||||||
30 * 60 * kMsecPerSec; // 30 minutes
|
30 * 60 * kMsecPerSec; // 30 minutes
|
||||||
|
const int GPodderSync::kRequestTimeout = 30 * kMsecPerSec; // 30 seconds
|
||||||
|
|
||||||
GPodderSync::GPodderSync(Application* app, QObject* parent)
|
GPodderSync::GPodderSync(Application* app, QObject* parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
app_(app),
|
app_(app),
|
||||||
network_(new NetworkAccessManager(this)),
|
network_(new NetworkAccessManager(kRequestTimeout, this)),
|
||||||
backend_(app_->podcast_backend()),
|
backend_(app_->podcast_backend()),
|
||||||
loader_(new PodcastUrlLoader(this)),
|
loader_(new PodcastUrlLoader(this)),
|
||||||
get_updates_timer_(new QTimer(this)),
|
get_updates_timer_(new QTimer(this)),
|
||||||
|
@ -51,6 +51,7 @@ class GPodderSync : public QObject {
|
|||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
static const int kFlushUpdateQueueDelay;
|
static const int kFlushUpdateQueueDelay;
|
||||||
static const int kGetUpdatesInterval;
|
static const int kGetUpdatesInterval;
|
||||||
|
static const int kRequestTimeout;
|
||||||
|
|
||||||
static QString DefaultDeviceName();
|
static QString DefaultDeviceName();
|
||||||
static QString DeviceId();
|
static QString DeviceId();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user