From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kio/kpasswdserver/kpasswdserver.h | 118 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 kio/kpasswdserver/kpasswdserver.h (limited to 'kio/kpasswdserver/kpasswdserver.h') diff --git a/kio/kpasswdserver/kpasswdserver.h b/kio/kpasswdserver/kpasswdserver.h new file mode 100644 index 000000000..31e8b9a2d --- /dev/null +++ b/kio/kpasswdserver/kpasswdserver.h @@ -0,0 +1,118 @@ +/* + This file is part of the KDE Password Server + + Copyright (C) 2002 Waldo Bastian (bastian@kde.org) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + version 2 as published by the Free Software Foundation. + + This software is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this library; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +//---------------------------------------------------------------------------- +// +// KDE Password Server +// $Id$ + +#ifndef KPASSWDSERVER_H +#define KPASSWDSERVER_H + +#include +#include + +#include +#include +#include + +namespace KWallet { + class Wallet; +} + +class KPasswdServer : public KDEDModule +{ + Q_OBJECT + K_DCOP +public: + KPasswdServer(const QCString &); + ~KPasswdServer(); + +k_dcop: + // KDE4 merge + KIO::AuthInfo checkAuthInfo(KIO::AuthInfo, long, unsigned long); + KIO::AuthInfo checkAuthInfo(KIO::AuthInfo, long); + KIO::AuthInfo queryAuthInfo(KIO::AuthInfo, QString, long, long, unsigned long); + KIO::AuthInfo queryAuthInfo(KIO::AuthInfo, QString, long, long); + void addAuthInfo(KIO::AuthInfo, long); + +public slots: + void processRequest(); + // Remove all authentication info associated with windowId + void removeAuthForWindowId(long windowId); + +protected: + struct AuthInfo; + + QString createCacheKey( const KIO::AuthInfo &info ); + const AuthInfo *findAuthInfoItem(const QString &key, const KIO::AuthInfo &info); + void removeAuthInfoItem(const QString &key, const KIO::AuthInfo &info); + void addAuthInfoItem(const QString &key, const KIO::AuthInfo &info, long windowId, long seqNr, bool canceled); + KIO::AuthInfo copyAuthInfo(const AuthInfo *); + void updateAuthExpire(const QString &key, const AuthInfo *, long windowId, bool keep); + int findWalletEntry( const QMap& map, const QString& username ); + bool openWallet( WId windowId ); + + struct AuthInfo { + AuthInfo() { expire = expNever; isCanceled = false; seqNr = 0; } + + KURL url; + QString directory; + QString username; + QString password; + QString realmValue; + QString digestInfo; + + enum { expNever, expWindowClose, expTime } expire; + QValueList windowList; + unsigned long expireTime; + long seqNr; + + bool isCanceled; + }; + + class AuthInfoList : public QPtrList + { + public: + AuthInfoList() { setAutoDelete(true); } + int compareItems(QPtrCollection::Item n1, QPtrCollection::Item n2); + }; + + QDict< AuthInfoList > m_authDict; + + struct Request { + DCOPClient *client; + DCOPClientTransaction *transaction; + QString key; + KIO::AuthInfo info; + QString errorMsg; + long windowId; + long seqNr; + bool prompt; + }; + + QPtrList< Request > m_authPending; + QPtrList< Request > m_authWait; + QIntDict mWindowIdList; + DCOPClient *m_dcopClient; + KWallet::Wallet* m_wallet; + long m_seqNr; +}; + +#endif -- cgit v1.2.1