add re-login
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Wed, 6 Oct 2010 19:32:54 +0000 (19:32 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Wed, 6 Oct 2010 19:32:54 +0000 (19:32 +0000)
git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@602 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

src/iface/msinterface.cpp

index 9aaad32..6fb983e 100644 (file)
 #include "sslexception.h"
 #include "templates.h"
 
+#include <QDateTime>
 #include <QDebug>
 #include <QDir>
 #include <QNetworkReply>
 #include <QMessageBox>
 #include <QSettings>
+#include <QTimer>
 #include <QTranslator>
+#include <MTLogin>
 
 MSInterface::MSInterface(QString pid)
        :MInterface()
@@ -63,6 +66,11 @@ bool MSInterface::login(QString username,QString passwd)
        else
                setSessionId(lg.getsessionid());
        if(lg.stage()!=lg.Success)return false;
+       //schedule re-login before session times out
+       int msecs=QDateTime::currentDateTime().msecsTo(QDateTime::fromTime_t(lg.getvalidtill()));
+       msecs-=120000;//do it 2 min before session runs out
+       if(msecs>100000)//but only if it does not become annoying...
+               QTimer::singleShot(msecs,this,SLOT(relogin()));
        //get rights
        MTGetMyRights mrt=MTGetMyRights::query();
        QStringList rsl=mrt.getright();