summaryrefslogtreecommitdiffstats
path: root/src/plugins/credentials/sso/ssomanager.h
diff options
context:
space:
mode:
authorDamien Caliste <[email protected]>2025-07-08 09:40:02 +0200
committerDamien Caliste <[email protected]>2025-08-04 08:54:25 +0200
commit6f47740aa54e4189303efe8232fb63949799f7c5 (patch)
treed8d381a4f004d615a130a3a8823874881fc5652a /src/plugins/credentials/sso/ssomanager.h
parenta51e8f047db78bded1e7aa91223eb59ba1350d1c (diff)
Add a timeout to credential fetching with SSOHEADmaster
In case SSO is too long to respond, this timeout avoids to stay indefinetely in the fetching state. It also allows to re-initialize the session process. Without it, it's not possible to restart credential fetching, getting errors when calling process() like: SSO error 305: AuthSession(password) is busy Change-Id: Ia2bbffbdb1510780a6db33a2b55450d69c9fc882 Reviewed-by: Pekka Vuorela <[email protected]>
Diffstat (limited to 'src/plugins/credentials/sso/ssomanager.h')
-rw-r--r--src/plugins/credentials/sso/ssomanager.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/credentials/sso/ssomanager.h b/src/plugins/credentials/sso/ssomanager.h
index 8e1a77d4..d0e4c3d5 100644
--- a/src/plugins/credentials/sso/ssomanager.h
+++ b/src/plugins/credentials/sso/ssomanager.h
@@ -44,6 +44,7 @@
#include <qmailcredentials.h>
+#include <QTimer>
#include <SignOn/Identity>
#include <SignOn/SessionData>
@@ -71,6 +72,9 @@ private:
const QVariantMap &parameters);
void onResponse(const SignOn::SessionData &sessionData);
void onError(const SignOn::Error &code);
+ void onStateChanged(SignOn::AuthSession::AuthSessionState state,
+ const QString &message);
+ void onSessionTimeout();
uint m_credentialIds = 0;
SignOn::Identity *m_identity = nullptr;
@@ -79,6 +83,7 @@ private:
Status m_status = Invalid;
QString m_errorMessage;
QString m_username;
+ QTimer m_timeout;
};
#endif