Allow setting transfer timeout for network requests of SyncthingConnection

This commit is contained in:
Martchus 2023-07-04 18:38:30 +02:00
parent 7c3204526e
commit ac07982596
3 changed files with 25 additions and 0 deletions

View File

@ -81,6 +81,7 @@ SyncthingConnection::SyncthingConnection(
, m_lastEventId(0)
, m_lastDiskEventId(0)
, m_autoReconnectTries(0)
, m_requestTimeout(QNetworkRequest::DefaultTransferTimeoutConstant)
, m_totalIncomingTraffic(unknownTraffic)
, m_totalOutgoingTraffic(unknownTraffic)
, m_totalIncomingRate(0.0)

View File

@ -72,6 +72,7 @@ class LIB_SYNCTHING_CONNECTOR_EXPORT SyncthingConnection : public QObject {
Q_PROPERTY(int trafficPollInterval READ trafficPollInterval WRITE setTrafficPollInterval)
Q_PROPERTY(int devStatsPollInterval READ devStatsPollInterval WRITE setDevStatsPollInterval)
Q_PROPERTY(bool recordFileChanges READ recordFileChanges WRITE setRecordFileChanges)
Q_PROPERTY(int requestTimeout READ requestTimeout WRITE setRequestTimeout)
Q_PROPERTY(QString myId READ myId NOTIFY myIdChanged)
Q_PROPERTY(QString tilde READ tilde NOTIFY tildeChanged)
Q_PROPERTY(QString pathSeparator READ pathSeparator NOTIFY tildeChanged)
@ -138,6 +139,8 @@ public:
void disablePolling();
bool recordFileChanges() const;
void setRecordFileChanges(bool recordFileChanges);
int requestTimeout() const;
void setRequestTimeout(int requestTimeout);
// getter for information retrieved from Syncthing
const QString &configDir() const;
@ -377,6 +380,7 @@ private:
QTimer m_errorsPollTimer;
QTimer m_autoReconnectTimer;
unsigned int m_autoReconnectTries;
int m_requestTimeout;
QString m_configDir;
QString m_myId;
QString m_tilde;
@ -715,6 +719,25 @@ inline void SyncthingConnection::setRecordFileChanges(bool recordFileChanges)
m_recordFileChanges = recordFileChanges;
}
/*!
* \brief Returns the transfer timeout for requests in milliseconds.
* \sa QNetworkRequest::transferTimeout()
*/
inline int SyncthingConnection::requestTimeout() const
{
return m_requestTimeout;
}
/*!
* \brief Sets the transfer timeout for requests in milliseconds.
* \remarks Existing requests are not affected.
* \sa QNetworkRequest::setTransferTimeout()
*/
inline void SyncthingConnection::setRequestTimeout(int requestTimeout)
{
m_requestTimeout = requestTimeout;
}
/*!
* \brief Returns what information is considered to compute the overall status returned by status().
*/

View File

@ -43,6 +43,7 @@ QNetworkRequest SyncthingConnection::prepareRequest(const QString &path, const Q
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/x-www-form-urlencoded"));
request.setRawHeader("X-API-Key", m_apiKey);
request.setTransferTimeout(m_requestTimeout);
return request;
}